Skip to content

v0.3.0: Working Scripts

Latest

Choose a tag to compare

@southsidedean southsidedean released this 05 Nov 18:18
v0.3.0
3c6f7b9

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.sh now 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.sh and prepare.sh stop 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-system from the job VM image.
  • Removed the /opt/tf-state share. If you used it, examples/terraform-state/ shows how to keep state in GitLab, and how to move existing state there.
  • runner-builder.sh no longer takes a password. The root password is random.
  • Renamed config.toml to config.example.toml, and Git now ignores config.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.