Xavier Claessens
November 06, 2018
Reading time:
GNOME GitLab has AWS runners, but they are used only when pushing code into a GNOME upstream repository, not when you push into your personal fork. For personal forks there is only one (AFAIK) shared runner and you could be waiting for hours before it picks your job.
But did you know you can register your own PC, or a spare laptop collecting dust in a drawer, to get instant continuous integration (CI) going? It's really easy to setup!
apt install docker.io
Follow the instructions here:
https://gitlab.com/gitlab-org/gitlab-runner/blob/master/docs/install/linux-repository.md#installing-the-runner
(Note: The Ubuntu 18.04 package doesn't seem to work.)
sudo gitlab-runner install
sudo gitlab-runner start
Go to your gitlab project page, settings -> CI/CD -> expand "runners"
sudo gitlab-runner register --non-interactive --url https://gitlab.gnome.org --executor docker --docker-image fedora:27 --registration-token ****
You can repeat step 5 with the registration token of all your personal forks in the same GitLab instance. To make this easier, here's a snippet I wrote in my ~/.bashrc
to register my "builder.local" machine on a new project. Use it as gitlab-register <token>
.
function gitlab-register { host=$1 token=$2 case "$host" in gnome) host=https://gitlab.gnome.org ;; fdo) host=https://gitlab.freedesktop.org ;; collabora) host=https://gitlab.collabora.com ;; *) host=https://gitlab.gnome.org token=$1 esac cmd="sudo gitlab-runner register --non-interactive --url $host --executor docker --docker-image fedora:27 --registration-token $token" #$cmd ssh builder.local -t "$cmd" }
Not only will you now get faster CI, but you'll also reduce the queue on the shared runner for others!
Visit Xavier's blog.
30/10/2023
With the upcoming 0.5 release, WirePlumber's Lua scripts will be transformed with the new Event Dispatcher. More modular and extensible…
02/10/2023
This second installment explores the Rust libraries Collabora developed to decode video and how these libraries are used within ARCVM to…
27/09/2023
Why is creating object graphs hard in Rust? In part 1, we looked at a basic pattern, where two types of objects refer to one another. In…
13/09/2023
Text-to-speech (TTS) models are playing a transformative role, from enriching audiobooks to enhancing podcasts and even improving interactions…
21/08/2023
In Linux, the Industrial Input/Output subsystem manages devices like Analog to Digital Converters, Light sensors, accelerometers, etc. On…
10/08/2023
Collabora's main testing laboratory has grown to automate testing on over 150 devices of about 30 different types. The lab receives job…
Comments (0)
Add a Comment