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:
- masterusername.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.