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.
We ran a successful instructional pilot this summer 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 server for instructional purposes. It's a fairly robust box and so should be able handle multiple concurrent build jobs with ease. Getting GitLab-Ci setup for a course is not yet a self-service operation, so please contact Support for assistance with getting things configured. As we gain experience, we hope to come up with some good guidelines and automation tools so that course staff will be able to easily perform their own setup and configuration. Of course, Lab staff is always willing to offer assistance as needed.
For researchers, we do not currently offer a dedicated build box. Given the diverse requirements for different research projects, configuring a single host to service all research projects would be a futile task. Additionally, researchers generally have access to sponsored hardware for compute cycles. Lab Staff can help you get the job runners setup and configured on your own hardware if you need.
A link to the runner project, which contains links to installation instructions for different platforms. https://gitlab.com/gitlab-org/gitlab-ci-multi-runner