Skip to content

GitLab-CI Runnners

In Gitlab-CI a runner is the name given to the machine that actual executes the jobs in a CI/CD pipeline. Each pipeline can run jobs on multiple runners, and each runner can run jobs from multiple pipelines concurrently (depending on its configuration).

Linux (default)

By default on the IGWN GitLab instance, jobs will run on a Linux x86_64 runner machine that supports the docker executor. If you do not specify a tag then the build will be randomly assigned to any of the Linux runners. There are site specific tags to ensure that your build runs at either UWM, using the uwm tag, or at Caltech, using the cit tag. By default each build will have access to 4 CPU cores and 10Gb RAM. If you require more memory than this then the highmem tag can be used, this will give you build access to 12 CPU cores and 25Gb RAM. Further details regarding these runners can be seen in the table below:

Site Slots Cores RAM Architecure CPU Tag
UWM 15 4 10Gb x86_64 Intel Xeon Silver 4116 uwm
CIT 32 4 10Gb x86_64 AMD EPYC 7402 cit
CIT 4 12 25Gb x86_64 AMD EPYC 7402 highmem
CNAF 12 4 8Gb x86_64 AMD EPYC cnaf

For these runners you need to specify which docker container to use for your build, if a container image is not specified (using the image keyword in your .gitlab-ci.yaml file) then the docker:latest image will be used. This is a very basic Linux image with docker available that is only really suitable for building docker containers.

macOS

There are a total of 6 macOS runners using both x86_64 and ARM64 CPUs, details of these machines are available in the table below:

Site Slots Cores RAM Architecure CPU Tag Operating System
CIT 2 4 8Gb x86_64 Intel (Haswell) macos_catalina_x86_64 macOS 10.15 (Catalina)
CIT 2 4 8Gb x86_64 Intel (Haswell) macos_bigsur_x86_64 macOS 11 (Big Sur)
CIT 2 8 16Gb ARM64 M1 macos_bigsur_arm64 macOS 11 (Big Sur)

macOS version-independent tags

If you do not have a preference for what version of macOS is used you can also use the tags macos_x86_64 and macos_arm64 to match to any runner with an x86_64 or ARM64 CPU respectively. For compatibility with the previous configuration the tag macos can also be used to match to any of the x86_64 macOS machines. Use of this tag is deprecated and the tag will be removed at some point.

Alternative Architectures

The UWM runner is also configured to allow the running of containers using alternative architectures using the multiarch cross building images. No extra user configuration is needed, you just need to specify a container based on one of the multiarch base images and then the runner will automatically run this using the appropriate QEMU emulator. We have prebuilt arm64 and ppc64le images of the igwn/base containers, igwn/base:arm64-conda and igwn/base:ppc64le-conda. These have Conda installed with the appropriate channels configured.

Only supported on the UWM runner

Running these alternative architecture containers is only supported on the UWM runner, so jobs that utilise these images must be tagged uwm.

Building you own

If you wish to build your own alternative architecture containers you must use of the the multiarch containers as the base, as these have the appropriate configuration for running under QEMU.