- +++
- title = "GitLab Pages"
- weight = 30
- +++
-
- We are going to use the GitLab CI runner to automatically publish the site (this CI runner is already included in your repository if you use GitLab.com).
-
- ## Repository setup
-
- Your repository needs to be set up to be a user or group website. This means the name of the repository has to be in the correct format.
-
- For example, assuming that the username is `john`, you have to create a project called `john.gitlab.io`. Your project URL will be `https://gitlab.com/john/john.gitlab.io`. Once you enable GitLab Pages for your project, your website will be published under `https://john.gitlab.io`.
-
- Under your group `websites`, you created a project called `websites.gitlab.io`. Your project’s URL will be `https://gitlab.com/websites/websites.gitlab.io`. Once you enable GitLab Pages for your project, your website will be published under `https://websites.gitlab.io`.
-
-
- This guide assumes that your zola project is located in the root of your repository.
-
- ## Ensuring that the CI runner can access your theme
-
- Depending on how you added your theme, your repository may not contain it. The best way to ensure that the theme will
- be added is to use submodules. When doing this, ensure that you are using the `https` version of the URL.
-
- ```shell
- $ git submodule add {THEME_URL} themes/{THEME_NAME}
- ```
-
- For example, this could look like:
- ```shell
- $ git submodule add https://github.com/getzola/hyde.git themes/hyde
- ```
-
- ## Setting up the GitLab CI/CD Runner
-
- The second step is to tell the GitLab continous integration runner how to create the GitLab page.
-
- To do this, create a file called `.gitlab-ci.yml` in the root directory of your repository.
-
- ```yaml
- variables:
- # This variable will ensure that the CI runner pulls in your theme from the submodule
- GIT_SUBMODULE_STRATEGY: recursive
- # Specify the zola version you want to use here
- ZOLA_VERSION: "v0.9.0"
-
- pages:
- script:
- # Download the zola executable and store it in zola.tar.gz
- - curl -L https://github.com/getzola/zola/releases/download/$ZOLA_VERSION/zola-$ZOLA_VERSION-x86_64-unknown-linux-gnu.tar.gz > zola.tar.gz
- # Unpack the zola executable
- - tar -xzf zola.tar.gz
- # Execute zola build
- - ./zola build
-
- artifacts:
- paths:
- # Path of our artifacts
- - public
-
- # This config will only publish changes that are pushed on the master branch
- only:
- - master
- ```
-
- Push this new file and ... Tada! You're done! If you navigate to `settings > pages`, you should be able to see
- something like this:
-
- > Congratulations! Your pages are served under:
- https://john.gitlab.io
-
- More information on the process to host on GitLab pages and additional information like using a custom domain is documented
- [in this GitLab blog post](https://about.gitlab.com/2016/04/07/gitlab-pages-setup/).
|