Service Overview
Gitlab-CI is a secure bolt-on Continuous Integration service to our centrally run GitLab instance. If you are interested in bringing automated testing to your GitLab project, Gitlab-CI offers a clean integrated solution, showing which builds have succeeded or failed, linking back to a particular commit. If you want to go one-step further and work in some automated deployments, you can add a webhook to your builds, which provides build status and other vital build information. For the extended list of features and more examples of how it works see Gitlab's CI overview.
Service Architecture @ CSE
The architecture of Gitlab-CI is such that the site https://gitlab-ci.cs.washington.edu, is co-located on the main GitLab server and takes on the role of build job coordinator, but doesn't actually perform any builds. Instead you, yes YOU the user, have the ability to configure and run a job runner on any available computing hardware (even your laptop!) and register it to your particular project. Multiple runners assigned to a project will be load-balanced by the CI server. One nice thing about this particular solution, is that it avoids the bottleneck that we've seen in managing build systems like Jenkins where concurrent build jobs can bring the system to its knees, rendering the whole service unusable.
Use Cases
We ran a successful instructional pilot this several summers in CSE332, using 4 dedicated runners for a course with 24 students. We observed about 10,000 build jobs attempted for the duration of the course. In order to further support this effort, we've setup a dedicated build servers for instructional purposes. Getting GitLab-Ci setup for a course is not yet a self-service operation, so please contact Support for assistance with getting things configured.
For researchers, we now have a dedicate research build box, please contact support to get setup, see here for more info: Runners
Documentation
A link to the runner project, which contains links to installation instructions for different platforms. https://gitlab.com/gitlab-org/gitlab-ci-multi-runner