- Create a new repository named username.gitlab.io, where username is your username on GitLab. If you have already uploaded to other repo, rename the repo instead.
- Enable Shared Runners via
Settings -> CI / CD -> Shared Runners
. - Push the files of your Hexo folder to the repository. The
public/
folder is not (and should not be) uploaded by default, make sure the.gitignore
file containspublic/
line. The folder structure should be roughly similar to this repo. - Add
.gitlab-ci.yml
file to your repo (alongside _config.yml & package.json) with the following content:image: node:10-alpine # use nodejs v10 LTS
cache:
paths:
- node_modules/
before_script:
- npm install hexo-cli -g
- npm install
pages:
script:
- hexo generate
artifacts:
paths:
- public
only:
- master - username.gitlab.io should be up and running, once GitLab CI finishes the deployment job,
- (Optional) If you wish to inspect the generated site assets (html, css, js, etc), they can be found in the job artifact.
Project page
If you prefer to have a project page on GitLab:
- Go to
Settings -> General -> Advanced -> Change path
. Change the value to a name, so the website is available at username.gitlab.io/name. It can be any name, like blog or hexo. - Edit _config.yml, change the
root:
value from""
to"name"
. - Commit and push.