RFD 1059: Continuous integration, in one step
Problem
.github/workflows/main.yml ran npm run test:anim-regression. package.json never defined that script. Every run of this job failed at that line. CI stayed red, or silently skipped, since whenever that step was added.
It also tested one of three parts of this repository. weftspun_studio/ had no CI at all, and neither did the two Podman images RFD 1058 adds.
Decision
Follow Martin Fowler’s “Continuous Integration”. One command builds and self-tests the whole system. A developer runs it before committing, and the integration machine runs the identical command.
Two of his practices name the fault directly. “Automate the Build” and “Make Your Build Self-Testing” are the two. A broken npm run line that only ran on GitHub’s machine shows what happens when the person who last touched a build never runs it.
scripts/ci.sh is that one command. A developer runs it before committing, and an integration machine runs the identical command.
See DETAILS.md for the three steps in order, why one script beats three CI steps, why the GitHub workflow is deleted for now, and what this deliberately does not cover.