github-actions
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.
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.