Skip to content

fix(actions): pin central required review workflows off starved ubuntu-latest - #1632

Merged
seonghobae merged 1 commit into
mainfrom
fix/pin-central-review-runners-ubuntu2404
Sep 1, 2026
Merged

fix(actions): pin central required review workflows off starved ubuntu-latest#1632
seonghobae merged 1 commit into
mainfrom
fix/pin-central-review-runners-ubuntu2404

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Summary

strix.yml, opencode-review.yml, and noema-review.yml — the three workflows the org's own required-workflow ruleset runs against every PR in every sibling repository — still requested the floating ubuntu-latest image after #1618 (required security gates) and #1609 (merge scheduler) already pinned their own jobs off it as "the observed starved floating image": GitHub-hosted runners requesting ubuntu-latest were being left queued with no runner assignment for hours, well beyond ordinary scheduling latency.

Since these three workflows are the actual required-check gate blocking merge organization-wide, a starved image here is a direct, high-leverage contributor to the sustained multi-hour organization-wide Actions queuing observed throughout this session — independently corroborated by #1630's own record of 822 queued Actions runs at merge time.

  • Pinned all 9 occurrences (3 in strix.yml, 5 in opencode-review.yml, 2 in noema-review.yml) to the explicit ubuntu-24.04 image, matching the established pattern exactly (a literal runs-on: value swap, no other job semantics touched).
  • New tests/test_required_review_runner_image_contract.py asserts no job in any of the three files requests the floating image, mirroring test_required_security_runner_image_contract.py's existing structure.

Unrelated pre-existing failures fixed in the same pass

#1630 (merged shortly before this fix, itself an owner-authorized QUEUE_SATURATION_CHICKEN_EGG bypass addressing the same 822-run backlog) moved the organization sweep's rotation cadence from every 15 minutes to hourly to reduce control-plane pressure, changing pr-review-merge-scheduler.yml's ORG_SWEEP_ROTATION_INDEX wall-clock fallback divisor from 900 (15 minutes in seconds) to 3600 (1 hour), but left tests/test_required_workflow_queue_contract.py's four rotation-index tests asserting the old 900 divisor and the old literal workflow string. Confirmed these 4 failures reproduce identically on a clean origin/main checkout, independent of and pre-dating this fix. Updated all four to the new 3600 divisor/string, preserving each test's original intent unchanged.

Residual

This closes the specific floating-image contribution from these three central workflows; it does not by itself guarantee the organization-wide Actions queue is fully drained, since other repositories' own workflows and any remaining unpinned central workflows may still request the floating image. Worth a follow-up sweep across the rest of .github/workflows/ and sibling-repo workflows if queuing persists after this lands.

Test plan

  • PYTHONPATH=. python3 -m pytest tests -q — 2407 passed, 1 skipped, 21 subtests
  • coverage run -m pytest tests && coverage report — 100% on scripts/ci
  • interrogate — 100%
  • All four touched/added workflow-adjacent files re-parse as valid YAML
  • Confirmed the 4 unrelated test failures reproduce identically on a clean origin/main checkout before fixing them

🤖 Generated with Claude Code

https://claude.ai/code/session_01BV96rXhqoR3tYZ9AeAVur4


Generated by Claude Code


Devin Review

…u-latest

strix.yml, opencode-review.yml, and noema-review.yml -- the three workflows
the org's own required-workflow ruleset runs against every PR in every
sibling repository -- still requested the floating ubuntu-latest image after
#1618 (security gates) and #1609 (merge scheduler) already pinned their own
jobs off it as "the observed starved floating image". Since these three are
the actual required-check gate blocking merge organization-wide, a starved
image here is a direct, high-leverage contributor to the sustained
multi-hour organization-wide Actions queuing observed throughout this
session (independently corroborated by #1630's own record of 822 queued
runs at merge time). Pinned all 9 occurrences (3 + 5 + 2) to ubuntu-24.04,
matching the established pattern exactly. New
tests/test_required_review_runner_image_contract.py mirrors
test_required_security_runner_image_contract.py's structure.

Also fixed 4 unrelated pre-existing test failures on main, confirmed to
reproduce identically on a clean origin/main checkout: #1630 moved the
organization sweep's rotation cadence from every 15 minutes to hourly
(reducing control-plane pressure under the same Actions saturation),
changing pr-review-merge-scheduler.yml's ORG_SWEEP_ROTATION_INDEX wall-clock
fallback divisor from 900 to 3600, but left
test_required_workflow_queue_contract.py's four rotation-index tests
asserting the old divisor/string.

Full suite: 2407 passed, 1 skipped, 21 subtests. Coverage 100% on
scripts/ci. Interrogate 100%. All touched workflow files re-parse as valid
YAML.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BV96rXhqoR3tYZ9AeAVur4

Copy link
Copy Markdown
Contributor Author

QUEUE_SATURATION_CHICKEN_EGG integration decision for exact head ab9f378259ae09c866409483d5a03d369ffc94d4.

Fresh live evidence: protected main is 476e8be3037800fb84e7ba780ed2068ffdfe3da5; GitHub reports this PR mechanically mergeable with zero review threads and no submitted review objection. The repository currently has 850 queued Actions runs, increased from 822 at #1630 integration. Every exact-head hosted workflow currently associated with this PR is queued, including the review/security/quality lanes whose runner starvation this change addresses.

The causal patch is independently verified before merge: all nine production changes in strix.yml, opencode-review.yml, and noema-review.yml are literal runs-on: ubuntu-latest -> ubuntu-24.04 substitutions; the new executable contract forbids the floating image and pins each expected occurrence count; the branch records a full 2407 passed, 1 skipped, 21 subtests, 100% scripts/ci coverage, 100% docstrings, and successful YAML re-parse. It also repairs the four stale 900-second scheduler tests left behind by merged #1630 by changing their expected wall-clock divisor/string to 3600 without changing production scheduler behavior. docs/product-technical-gap-baseline.md and CHANGELOG carry the causal record.

The only remaining admission evidence is queued behind the runner fleet whose starved ubuntu-latest demand this PR removes from all three organization-wide required review gates. This satisfies the bounded queue-saturation chicken-and-egg exception. Merge must be pinned to this exact head and does not promote predecessor/queued checks to passing evidence.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Devin Review

@seonghobae
seonghobae merged commit d9320a4 into main Sep 1, 2026
21 of 39 checks passed
@seonghobae
seonghobae deleted the fix/pin-central-review-runners-ubuntu2404 branch September 1, 2026 18:16
seonghobae added a commit that referenced this pull request Sep 1, 2026
Integrate protected main@d9320a42d7a272720f6b659003a0456e4dc65e8e without force-push. The #1632 required-review runner pin is already content-equivalent on this writer; retain the writer's seven governance-path delta while recording current-main ancestry so exact-head review/check evidence regenerates against the latest protected control plane.
seonghobae added a commit that referenced this pull request Sep 1, 2026
Restore the exact protected-main #1632 tree for Strix/OpenCode/Noema runner pins, queue regressions, changelog and product-gap record after ancestry integration. The governance writer retains only its seven intended audit/documentation/test deltas over main.
seonghobae added a commit that referenced this pull request Sep 1, 2026
QUEUE_SATURATION_CHICKEN_EGG: exact head 5bc790d is mechanically mergeable; current-head Devin and CodeRabbit statuses are successful; all review threads are resolved; exact-head quality CI and completed security checks are green. Remaining required Noema/OpenCode/Strix/security workflows are queued behind the documented saturated Actions fleet, and the central runner-owner repair #1632 landed after these stale queued executions were created. Merge uses expected-head protection and the repository ruleset's live authorized owner/admin bypass.
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.

2 participants