Repository navigation
The scripts work again on current software, and a full test install ran a pipeline from start to finish. The README's steps catch up in 0.4.0, so some of them are still out of date: it still shows a password argument for runner-builder.sh, a console login, and the old way of registering a runner. Use docs/release-checklist.md for the steps that were tested.
Changes
- Fixed
cleanup.sh, which deleted a VM's disk without waiting for the VM to stop. It now stops the VM first, waits up to 5 minutes, and keeps the disk if the VM won't stop. prepare.shnow waits up to 5 minutes for a VM's address and for SSH, up from 30 seconds each, and the scripts always use the system libvirt instance.runner-builder.shandprepare.shstop with a clear message when the SSH key is missing.- The job VM image is now Debian 13, and a weekly test builds it and runs real jobs in it.
- Removed
libvirt-daemon-systemfrom the job VM image. - Removed the
/opt/tf-stateshare. If you used it,examples/terraform-state/shows how to keep state in GitLab, and how to move existing state there. runner-builder.shno longer takes a password. The root password is random.- Renamed
config.tomltoconfig.example.toml, and Git now ignoresconfig.toml. - Added
docs/release-checklist.md.
How it was tested
A full install on Ubuntu 26.04 with GitLab Community Edition 19.5, in a nested VM. The sample job went green, with ufw on and after a reboot, and the Terraform example kept its state in GitLab across fresh VMs.
The test created the runner and projects through GitLab's API, and the checklist was written from the test, so nobody has followed it start to finish yet. Let's Encrypt, HTTPS, port forwarding, and a real DNS name weren't tested. Those are in the plan for later.
Next is 0.4.0, which refreshes the README and brings in the guides.