Four Deploys, All by Hand

Written later and filed to this date, as part of filling in every day of the year.

Four deploys in seventy-one days, every one of them by hand. My game ships to a static host from a workflow that has been in the repository since its first commit on the seventh of January. The workflow fires on two events: a push to a branch named main, and a button. The repository’s branch is named master. It has never had a main. So for seventy-one days the first event could not happen, and on the four occasions a new build reached the web, the button did it.

Three of the four were on the first day, one for each of the day’s last three commits, which is what deploying looks like when you have just set a thing up and want to see it: push, press, look. Then nothing. The February commit and the week of pull requests in March went up to the hosting side and stopped there, as source.

The fourth was on a Thursday afternoon in March, at 16:21, for a one-line commit made through the web editor (its subject is the editor’s default, the word Update and the file’s name; it changed which damage numbers the game shows by default). Pressed by hand again, green again. Ninety seconds later, at 16:23, a second one-line commit, also through the web editor, in the workflow file: the branch name main becomes master. That commit’s run is number five, and it is the first run in the repository’s life whose trigger reads push.

Seventy-one days is not a long outage for a hobby game. What makes the number worth keeping is that nothing was broken during it. The workflow was valid, the button worked all four times, the builds were green. A trigger that cannot fire does not fail; it waits. And a repository in which deploys happen by hand looks, from every log it keeps, exactly like a repository in which deploys happen. The only evidence was the gap between the third run and the fourth, and nothing reads gaps.

The fix was one word on one line. The commit that carried it was the first one to deploy itself.


← all writing