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.