ci-cd

  • A matrix that was seven jobs to test one thing

    A matrix of PHP versions crossed with dependency strategies, producing seven jobs, six of which tested a combination nobody runs. A full cross product tests combinations that no…

  • PHPUnit 11, and a suite that had already been migrated

    11.0 in February, a year after the 10.0 migration did the hard part, and eleven deprecations that were all things 10 had warned about.

  • Docker 25, and the build cache backend I finally read about

    Cache mounts are local to the builder, which on a hosted CI runner means they do nothing at all. A registry cache backend moves the layer cache off…

  • The service we merged back

    Two services extracted in 2021, a team of four maintaining four pipelines, and forty-one of forty-four releases touching both.

  • Reusable workflows, and the inputs that became an API

    A reusable workflow shared across four repositories, and the eleventh input added because one repository was different. Every input is a branch in the workflow and eleven of…

  • The migration Rector wrote and we rewrote

    An automated refactor across 412 files, a diff of 8,000 lines, and three wrong hunks in it. The review nobody could actually do.

  • Artifact actions v4, and the append that no longer works

    A workflow uploading to the same artifact name from four matrix jobs, which had merged them and now fails on the second. Artifacts are immutable in v4, which…

  • The dependency we vendored

    A 200-line package with 41 transitive dependencies, doing one thing, and an advisory in something four levels down that we had never heard of.

  • terraform test, and the module that had no assertions

    A testing framework in 1.6, usable in 1.7, and a module that had been verified by applying it and looking. command = plan asserts against the plan without…

  • Reproducing a build from six months ago

    A security question about a release from July, and no way to rebuild it. The same commit produces a different image, and neither of them is wrong.