summaryrefslogtreecommitdiffstats
path: root/content/deployment/gitlab-pages.md
diff options
context:
space:
mode:
Diffstat (limited to 'content/deployment/gitlab-pages.md')
-rw-r--r--content/deployment/gitlab-pages.md71
1 files changed, 71 insertions, 0 deletions
diff --git a/content/deployment/gitlab-pages.md b/content/deployment/gitlab-pages.md
new file mode 100644
index 0000000..933eeeb
--- /dev/null
+++ b/content/deployment/gitlab-pages.md
@@ -0,0 +1,71 @@
++++
+title = "GitLab Pages"
+weight = 40
++++
+
+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 continuous 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
+image: alpine:latest
+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.12.0"
+
+pages:
+ script:
+ # Install the zola package from the alpine community repositories
+ - apk add --update-cache --repository http://dl-3.alpinelinux.org/alpine/edge/community/ zola
+ # 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/).