gitlabService Overview

GitLab Pages is a way to host project websites with CSE GitLab, much the way you can with GitHub. Using GitLab CI and GitLab runner, you can maintain and deploy static webpages for your CSE GitLab projects, groups, or yourself.

Please note the following:

Because the official GitLab Pages feature is available to users of the Enterprise Edition of GitLab (we run the 'Community Edition') our implementation uses a community sourced version of GitLab Pages. That project home is here:
https://github.com/YuMS/gitlab-ce-pages


The major limitation to the communtiy sourced version is that custom domain mapping is a manual process that needs to be performed by lab staff, rather than user controlled with the GUI.  Other than that, the two version are at feature parity:
https://docs.gitlab.com/ee/pages/README.html

Get Started!

There are only a few steps to get this working.

1) You need to install a the gitlab-ci-multi-runner service. This is the piece of software that will actually build the static pages. For installation instructions and documentation, go here:
https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/#installation


2) You'll now need to setup a runner. Once the software is installed from step 1, from a command line run:
gitlab-ci-multi-runner register

You can find the server url and project token on your project's runners menu.  This concludes the hard part of the setup.

3)In order to start deploying builds, from your project's "Webhook" menu, add a "Build" webhook which calls:
https://gitlab-pages.cs.washington.edu

Now, once you update your site, your runner will build the static pages and the gitlab-pages server will pull them down and serve them.

By default, your site will be available at:
http://gitlab-pages.cs.washington.edu/<groupname>/<projectname>

4) Optional: If you want a custom domain such as <projectname>.cs.washington.edu, just drop a request to support an we can get it setup in no time!  For non cs.washington.edu domains, setup may take a little longer.


For reference here is a list of Pages examples. Feel free to import one of them as a template to get started quickly:
https://gitlab.com/groups/pages