Skip to content

Bound every CI job with a timeout and name it after what it verifies - #13

Merged
apresmoi merged 6 commits into
mainfrom
ci/job-names-and-timeouts
Aug 30, 2026
Merged

Bound every CI job with a timeout and name it after what it verifies#13
apresmoi merged 6 commits into
mainfrom
ci/job-names-and-timeouts

Conversation

@apresmoi

Copy link
Copy Markdown
Collaborator

Why

Two problems, both found while chasing a CI run that sat in progress for over an hour.

No job in this repo had a timeout-minutes. A hung job therefore ran until GitHub's 6-hour limit rather than failing fast. Every job now carries a budget sized to what it does — 15 minutes for the console, relay, and docs builds, 25–30 for the Go suites.

Every job was unnamed, so the checks list showed raw job ids. go-test does vet, staticcheck, go mod tidy drift detection, coverage and its threshold — none of which the id conveys. A reader scanning a red PR could not tell which of six jobs mattered.

go-test            → go vet + staticcheck + coverage
go-test-postgres   → postgres-backed store tests
go-race            → go test -race
console-build      → operator console build
relay-test         → cloudflare relay tests
docs-build         → docs site build

Release and website jobs are named the same way.

Scope

CI configuration only. No source, no tests, no behavior. The same change is going out across the other five ecosystem repos, where the naming problem was worse — Spawnfile's runtime-image matrix rendered as build (daimon, noopolis/spawnfile-runtime-daimon, 0.1.2, runtime-images/daimon, DAIMON_VERSION=0... and Simfile's suite was four anonymous shards called test (1) through test (4).

@apresmoi
apresmoi merged commit abb3e8f into main Aug 30, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant