CI: a runner image with the build's tools already installed #120

Closed
opened 2026-11-06 20:42:31 +00:00 by rajames · 1 comment
Owner

What

An image, built from gitea/runner-images:ubuntu-24.04, with what make ARCH=amd64,aarch64,riscv64 init INIT_DOCS=0 installs (and Maven, for the publish steps) already in it, kept in this repository's package registry. The workflows name it as their container.

Why

Captain Bob, 2026-11-06: a small server, a little sluggish. Each change costs about an hour of runner time, of which the gate itself (acceptance) is about 15 minutes. Every job starts by installing the same packages: ~2-3 minutes, five times per change.

Done when

  • The image's recipe is in the tree, its package list taken from the Makefile's init, not copied
  • A workflow builds and publishes it to the package registry
  • The workflows run in it; their install step takes seconds
  • Acceptance passes in it
## What An image, built from `gitea/runner-images:ubuntu-24.04`, with what `make ARCH=amd64,aarch64,riscv64 init INIT_DOCS=0` installs (and Maven, for the publish steps) already in it, kept in this repository's package registry. The workflows name it as their container. ## Why Captain Bob, 2026-11-06: a small server, a little sluggish. Each change costs about an hour of runner time, of which the gate itself (acceptance) is about 15 minutes. Every job starts by installing the same packages: ~2-3 minutes, five times per change. ## Done when - [x] The image's recipe is in the tree, its package list taken from the Makefile's `init`, not copied - [x] A workflow builds and publishes it to the package registry - [x] The workflows run in it; their install step takes seconds - [x] Acceptance passes in it
rajames added this to the CI and the gate milestone 2026-11-06 20:42:31 +00:00
rajames added the
priority
should
status
in-progress
kind
ci
labels 2026-11-06 20:42:31 +00:00
Author
Owner

Built: lithosananke-runner:72b6cf370db1 published by runner-image.yml (run 170) with PACKAGES_TOKEN; every workflow but runner-image.yml now runs in it, pulling with that token (#123, merged d936420d).

Verified: Build run 171 green in the image (Image RASPI 2m45s, was ~4m40s); Acceptance on #123, run 172, green in 13m45s (#122's took 16m14s); master's tree equals the accepted head's (c18e7610e7).

Built: `lithosananke-runner:72b6cf370db1` published by runner-image.yml (run 170) with PACKAGES_TOKEN; every workflow but runner-image.yml now runs in it, pulling with that token (#123, merged d936420d). Verified: Build run 171 green in the image (Image RASPI 2m45s, was ~4m40s); Acceptance on #123, run 172, green in 13m45s (#122's took 16m14s); master's tree equals the accepted head's (c18e7610e7a7).
Sign in to join this conversation.