ci-cd

  • An incident with no engineer

    An outage at 04:00 in August, resolved before anybody woke up. A worker crash loop that would have been a two-hour outage in 2023.

  • A quarantined test, three deadlines, and a real race

    A test skipped since 2023 under a policy with deadlines, extended three times, covering a payment path. A quarantine deadline that can be extended is a policy with…

  • A thousand runs, and what that proves

    A test run a thousand times to establish that a flake is fixed, and what that number actually supports. A thousand clean runs bounds the failure rate rather…

  • A trigger matrix, drawn once, on paper

    An afternoon spent working out what actually runs when, which nobody had ever done. A matrix of six jobs and four triggers is twenty-four cells and nobody had…

  • Five workflow files becoming one

    Four years of adding a workflow per concern, consolidated into one file with jobs. The concurrency model and the permissions become expressible once everything is in one file,…

  • The test that had been quarantined since 2023

    A quarantine list with a deadline, three extensions, and one test covering a payment path that had been skipped for three years.

  • Coverage on changed lines only

    A merge gate on the coverage of lines the pull request touched, which is a different and better question. A global coverage threshold is satisfiable by testing the…

  • Reusable skills and agent definitions, and what they are actually for

    turkerdev/ai-skills and turkerdev/ai-agents, and eighteen months of retyping the same instructions. Context is per-session and knowledge is not.

  • A pipeline described in one file, after four years of five

    Five workflow files, two composite actions, and nobody able to say what runs when. A change that needed editing three files, one of them wrong.

  • Writing a PHPUnit extension

    turkerdev/phpunit-json-coverage-report, and a coverage report a machine can read. Coverage as a percentage in a log, and no way to ask which paths changed.