← All tags

ci-cd

Caching CI on Ephemeral Runners (Without a Docker Daemon)

Ephemeral one-job runners start clean every time, so the usual on-disk caches are gone before the next job sees them. Two example workflows that fix that: a build/test job that caches the compiler over HTTPS, and an image build that caches layers in a registry - all with no Docker daemon.

Ephemeral GitHub Actions Runners on Cloudflare Containers

AI coding agents burn through GitHub Actions minutes. I built flare-runner: a Cloudflare Worker that turns a workflow_job webhook into a short-lived Cloudflare Container running one CI job, then exits. One container per job, scale to zero, no standing runner box.

Rebuilding the Asterisk Docker Matrix

Notes on rebuilding andrius/asterisk. The template system, the version coverage from 1.2.40 to 23.2.0, and the CI/CD that keeps it supported.

A Run-in-Docker Action for GitHub Workflows

Open-sourced run-in-docker, a small GitHub Action that runs build commands inside a legacy Debian container without forcing Node.js into the container itself.

Running GitHub Actions on Debian Jessie and Stretch

Notes on building CI for services that still ship on Debian Jessie and Stretch. The image stack, the Node.js compatibility problem, and the workarounds that keep actions/checkout running on glibc that is older than GitHub expects.

Consolidating CI With Reusable Workflows

A year after migrating an R&D team's repositories to GitHub, the per-repo workflows had drifted into a maintenance problem. Notes on consolidating around fifty repositories behind a small set of reusable workflows.

Migrating 140 Repositories From GitLab to GitHub

Notes on moving an R&D team's repositories from a self-hosted GitLab installation to GitHub. The migration tool, the per-repo CI, and the design choices that came out of it.