Skip to content

ci: bound the shared CI jobs the same way the publish job is bounded - #29

Merged
ken-jo merged 2 commits into
mainfrom
ci/bound-shared-ci-jobs
Aug 23, 2026
Merged

ci: bound the shared CI jobs the same way the publish job is bounded#29
ken-jo merged 2 commits into
mainfrom
ci/bound-shared-ci-jobs

Conversation

@ken-jo

@ken-jo ken-jo commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Follow-up to #28, which bounded the publish job.

A job that no runner accepts does not fail. It sits queued until the 24-hour limit expires, with the runner reported online / busy: false and no annotation on the run. That silence is why a broken publish pipeline went unnoticed for days in 2026-08 — there was never a red check to look at.

Nothing about that failure shape is specific to the publisher tier. Any self-hosted job becomes unschedulable when a host drops out or a group's membership changes, so the two shared CI jobs get the same bound:

job runner bound typical
plugin-ci.ymlbuild-test lvis-oracle-ci 30 min ~30s
validate-plugin-manifest.ymlvalidate lvis-oracle-ci 20 min ~20s

The bounds are far above any real run; their only job is to turn "quietly stuck" into a failure someone will see. The CI group is unrestricted and has five runners, so this is defense against a rarer case than the publisher tier's — but it costs nothing and the failure mode is identical.

🤖 Generated with Claude Code

https://claude.ai/code/session_01W9K9WE1ATSqYFStZGtLpNk

ken-jo and others added 2 commits August 24, 2026 01:41
A job no runner accepts does not fail — it waits out the 24-hour queue limit
with the runner reported online and idle and no red check anywhere. That silence
is the reason a broken publish pipeline went unnoticed for days in 2026-08, and
nothing about it is specific to the publisher tier: any self-hosted job can
become unschedulable when a host drops or a group's membership changes.

So the two shared CI jobs get the same treatment the publish job just got. The
bounds are generous — these finish in well under a minute — and their only job
is to convert "quietly stuck" into a failure someone will see.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W9K9WE1ATSqYFStZGtLpNk
A job no runner accepts does not fail — it waits out the 24-hour queue limit
with the runner reported online and idle and no red check anywhere. That silence
is the reason a broken publish pipeline went unnoticed for days in 2026-08, and
nothing about it is specific to the publisher tier: any self-hosted job can
become unschedulable when a host drops or a group's membership changes.

So the two shared CI jobs get the same treatment the publish job just got. The
bounds are generous — these finish in well under a minute — and their only job
is to convert "quietly stuck" into a failure someone will see.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W9K9WE1ATSqYFStZGtLpNk
@ken-jo
ken-jo merged commit f431641 into main Aug 23, 2026
1 check passed
@ken-jo
ken-jo deleted the ci/bound-shared-ci-jobs branch August 23, 2026 16:42
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