Skip to content

ci: reduce required scope checkout transfer - #7894

Merged
henrypark133 merged 1 commit into
mainfrom
ci/scope-checkout-transfer
Aug 25, 2026
Merged

henrypark133 merged 1 commit into
mainfrom
ci/scope-checkout-transfer

Conversation

@henrypark133

Copy link
Copy Markdown
Collaborator

Summary

  • Reduce transfer in the two required-check scope jobs without changing their path-selection policy.
  • Keep full commit ancestry where three-dot diffs need a merge base, but omit historical blobs with checkout's partial-clone filter.
  • Use a depth-1 checkout for Tests (Reborn) events that always build the exhaustive plan and never inspect a diff.
  • Add a contract that pins both the transfer optimization and the existing three-dot diff semantics.

Change Type

  • CI/Infrastructure

Linked Issue

Related #7799. This is the smaller replacement experiment after closing the nextest/matrix approach in #7817.

Validation

  • Relevant tests pass: planner and WS12 workflow contracts
  • If a coding agent was used and supports it, pr-shepherd was run before requesting review

Test Strategy

User behavior: PR and merge-queue lane selection is unchanged; scope checkout should become faster and less variable.

Risk areas:

  • Cross-component behavior

Tests added or updated:

  • Unit or contract: test_scope_checkouts_minimize_transfer_without_losing_pr_ancestry
  • Reborn integration: Not applicable: no Rust/runtime behavior changes.
  • Recorded fixture: Not applicable: no model-visible behavior changes.
  • Browser E2E: Not applicable: no UI changes.
  • Backend or runtime: Not applicable: workflow checkout inputs only.
  • Live canary: Not applicable: no deployed behavior changes.

What the tests prove: both required scope jobs use blobless partial clone, the Tests planner uses depth 1 only outside pull requests, and both jobs retain their three-dot diff.

Commands run:

python3 scripts/ci/test_reborn_pr_test_plan.py
python3 scripts/ci/ws12_workflow_contracts.py
python3 scripts/ci/test_ws12_workflow_contracts.py
python3 -m unittest scripts.ci.test_reborn_pr_test_plan.RebornPrTestPlanTests.test_scope_checkouts_minimize_transfer_without_losing_pr_ancestry
python3 yaml.safe_load for both changed workflows
git diff --check

Security Impact

None. Repository permissions and persist-credentials: false are unchanged.

Reborn Trust-Boundary Checklist

N/A: CI checkout transfer only; no product trust boundary changes.

Database Impact

None.

Blast Radius

The changes jobs in the two required workflows. A checkout implementation incompatibility would fail scope detection before any test or lint matrix runs; no check is silently skipped.

Compatibility: actions/checkout v6 supports the filter input. Pull requests and Code Style merge-group runs retain fetch-depth: 0, so merge-base ancestry and base-lockfile reads remain available. Non-PR Tests events already select the exhaustive plan and do not read diff history.

Measurement: compare checkout and total changes duration on this PR and its merge-group run against the recent observed 1.1–6.0 minute scope range. This slice is successful if selection stays identical and checkout variance materially contracts; it is not claimed by itself to deliver the complete sub-10-minute CI target.

Rollback Plan

Revert this commit. That restores fetch-depth: 0 without partial clone in both scope jobs. Because the change is confined to checkout inputs and fails before lane fan-out, rollback requires no data migration or compatibility window.

Review Follow-Through

Please require two approvals for this Track C workflow change. After PR CI, record the scope-job checkout timings before considering the next runner-capacity slice.


Review track: C

Copilot AI lite review requested due to automatic review settings August 25, 2026 20:24

Copilot AI 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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@railway-app

railway-app Bot commented Aug 25, 2026 •

Copy link
Copy Markdown

🚅 Deployed to the ironclaw-pr-7894 environment in ironclaw-ci-preview

Service Status Web Updated (UTC)
ironclaw ✅ Success (View Logs) Web Aug 25, 2026 at 8:25 pm

@railway-app
railway-app Bot temporarily deployed to ironclaw-ci-preview / ironclaw-pr-7894 August 25, 2026 20:24 Destroyed
@github-actions github-actions Bot added scope: ci CI/CD workflows size: S 10-49 changed lines risk: medium Business logic, config, or moderate-risk modules contributor: core 20+ merged PRs labels Aug 25, 2026
@coderabbitai

coderabbitai Bot commented Aug 25, 2026 •

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 45c72b20-95e3-4f38-a9ff-8cbb539fcf1f

📥 Commits

Reviewing files that changed from the base of the PR and between 5e489d4 and b251075.

📒 Files selected for processing (3)
  • .github/workflows/code_style.yml
  • .github/workflows/reborn-tests.yml
  • scripts/ci/test_reborn_pr_test_plan.py

Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review.


📝 Walkthrough

Summary by CodeRabbit

  • Performance

    • Reduced unnecessary data downloaded during automated validation checks by using optimized repository checkouts.
    • Preserved accurate pull request change comparisons while minimizing transfer size.
  • Tests

    • Added coverage to verify that optimized checkouts retain the required pull request comparison behavior.

Walkthrough

CI workflows now use blobless checkouts and event-specific fetch depth. Pull-request ancestry remains available for three-dot scope diffs. A contract test verifies these checkout settings.

Changes

CI checkout efficiency

Layer / File(s) Summary
Checkout transfer and ancestry rules
.github/workflows/reborn-tests.yml, .github/workflows/code_style.yml, scripts/ci/test_reborn_pr_test_plan.py
Reborn uses full history for pull requests and shallow history for other events, with blob:none for all events. Code Style enables blob:none while retaining the ancestry required for three-dot diffs. A contract test verifies these settings.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to b2510

This PR reduces CI checkout transfer while preserving existing scope-selection behavior and three-dot diff semantics; no actionable merge-blocking risk remains beyond normal checks and review.

Suggested reviewers: benkurrek

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly describes the CI checkout-transfer optimization and uses the Conventional Commits ci: prefix. The missing scope is acceptable because the requirement states a preference, not a man…
Description check ✅ Passed The description is complete and directly matches the workflow and contract-test changes. It covers the required summary, change type, issue, validation, test strategy, security, trust boundary, databa…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Title check

Explanation

The title clearly describes the CI checkout-transfer optimization and uses the Conventional Commits ci: prefix. The missing scope is acceptable because the requirement states a preference, not a mandatory format.

Full details: Description check

Explanation

The description is complete and directly matches the workflow and contract-test changes. It covers the required summary, change type, issue, validation, test strategy, security, trust boundary, database impact, blast radius, rollback, review follow-through, and review track.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@ironloopai

ironloopai Bot commented Aug 25, 2026 •

Copy link
Copy Markdown
Contributor

Review · Status

🟩 Completed

IronLoop completed the review and posted it to GitHub.

Result

Open submitted review →

Run details
  • Run: b65691ed-c1d8-412d-82ae-4b357fdc06b5
  • Base: main at 5e489d4
  • Head: ci/scope-checkout-transfer at b251075
  • Created: 2026-08-25 20:29 UTC
  • Updated: 2026-08-25 20:35 UTC

Automatic trigger · attempt 1 of 3 · completed in 5m 52s

@henrypark133

Copy link
Copy Markdown
Collaborator Author

First-run measurement (PR event, commit b251075):

  • Code Style scope job: 23s total; checkout 11s; runner start ~3s after workflow creation.
  • Tests scope job: 47s total; checkout 12s; runner start ~4s after workflow creation.
  • Required Code Style workflow: green in ~4m03s from workflow creation.
  • Required Tests (Reborn) workflow: green in ~9m00s from workflow creation.
  • All checks: green; no review findings. Copilot could not review because its requester quota was exhausted.

This is a meaningful contraction from the recently observed ~1.1–6.0m scope range, with three-dot diff selection preserved. It proves the PR-event slice on this CI-only diff. We still need the merge-group run—and later a representative Rust PR—to assess queue predictability and the broader p90 target.

@ironloopai ironloopai 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.

Review · Summary

🟢 No actionable findings

No actionable issues found in the checkout-transfer changes.

Validation
  • ✅ Scope checkout contract — The focused contract test passed for blobless checkout and PR ancestry settings.
  • ✅ Reborn planner contracts — The planner contract suite passed (92 tests).
  • ✅ Workflow contracts — The workflow contract checker and its 156-test suite passed.
  • ✅ Workflow YAML — Both changed workflow files parsed successfully.
Review details
  • Run: b65691ed-c1d8-412d-82ae-4b357fdc06b5
  • Attempts: 1

@lloydmak99 lloydmak99 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The checkout changes preserve full ancestry where PR scope detection needs it and use shallow checkout only for events that build the exhaustive plan. No blocking issues found.

Checks: 92 planner tests, 156 workflow contract tests, focused checkout-scope test, YAML parsing for both workflows, and git diff --check all passed.

@henrypark133
henrypark133 added this pull request to the merge queue Aug 25, 2026
Merged via the queue into main with commit 9102166 Aug 25, 2026
39 checks passed
@henrypark133
henrypark133 deleted the ci/scope-checkout-transfer branch August 25, 2026 20:58
@henrypark133 henrypark133 mentioned this pull request Aug 26, 2026
5 of 21 tasks
l3ocifer pushed a commit to l3ocifer/frick-ironclaw that referenced this pull request Sep 3, 2026
Co-authored-by: Henry Park <16583448+henrypark133@users.noreply.github.com>

This branch was successfully deployed

No deployments
ironclaw-ci-preview / ironclaw-pr-7894 — b251075e Deployed Aug 25, 2026 by railway-app[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

contributor: core 20+ merged PRs risk: medium Business logic, config, or moderate-risk modules scope: ci CI/CD workflows size: S 10-49 changed lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants