Skip to content

ci: split CI into parallel fast-checks and turbo-check jobs#2672

Open
amikofalvy wants to merge 1 commit intomainfrom
prd-6284-split-ci-parallel
Open

ci: split CI into parallel fast-checks and turbo-check jobs#2672
amikofalvy wants to merge 1 commit intomainfrom
prd-6284-split-ci-parallel

Conversation

@amikofalvy
Copy link
Collaborator

Summary

  • Split the monolithic ci job into two parallel jobs: fast-checks (ubuntu-latest) and turbo-check (ubuntu-32gb)
  • Lightweight checks (format, env-descriptions, route-handler-patterns, knip) now run on a cheap runner in parallel with the heavy turbo/playwright checks
  • A gate job named ci depends on both, preserving the required status check name

Test plan

  • Verify fast-checks job runs format:check, check:env-descriptions, check:route-handler-patterns, and knip on ubuntu-latest
  • Verify turbo-check job runs turbo check, agents-docs lint/typecheck, and OpenAPI snapshot logic on ubuntu-32gb
  • Verify the ci gate job passes when both jobs succeed
  • Verify the ci gate job fails if either job fails
  • Verify the create-agents-e2e job is unchanged

🤖 Generated with Claude Code

@pullfrog
Copy link
Contributor

pullfrog bot commented Mar 12, 2026

Error

agent completed without reporting progress

Pullfrog  | Rerun failed job ➔View workflow run | Triggered by Pullfrogpullfrog.com𝕏

@changeset-bot
Copy link

changeset-bot bot commented Mar 12, 2026

⚠️ No Changeset found

Latest commit: ff4615b

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel
Copy link

vercel bot commented Mar 12, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
agents-api Ready Ready Preview, Comment Mar 13, 2026 6:23am
agents-docs Ready Ready Preview, Comment Mar 13, 2026 6:23am
agents-manage-ui Ready Ready Preview, Comment Mar 13, 2026 6:23am

Request Review

Copy link
Contributor

@claude claude bot left a comment

Choose a reason for hiding this comment

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

PR Review Summary

(0) Total Issues | Risk: Low

This PR cleanly splits the monolithic CI workflow into two parallel jobs (fast-checks on ubuntu-latest and turbo-check on ubuntu-32gb), with a gate job preserving the ci status check name. The implementation follows GitHub Actions best practices with properly pinned action SHAs, appropriate permissions scoping, and sensible timeout values.

💭 Consider (2) 💭

Inline Comments:

  • 💭 Consider: .github/workflows/ci.yml:236 Gate job condition could be strengthened for explicitness
  • 💭 Consider: .github/workflows/ci.yml:67 check:route-handler-patterns is a new CI addition (good alignment with local pnpm check)

✅ APPROVE

Summary: Well-structured CI optimization. The split correctly moves lightweight checks (format, env-descriptions, route-handler-patterns, knip) to a cheap ubuntu-latest runner while keeping build/lint/typecheck/test on the 32GB runner. The gate job pattern is correct and preserves branch protection compatibility. The two "Consider" items are minor robustness suggestions — the PR is ready to merge as-is. 🚀

Reviewers (2)
Reviewer Returned Main Findings Consider While You're Here Inline Comments Pending Recs Discarded
pr-review-devops 8 0 0 0 2 0 6
pr-review-standards 0 0 0 0 0 0 0
Total 8 0 0 0 2 0 6
Discarded (6)
Location Issue Reason Discarded
.github/workflows/ci.yml:21-71 fast-checks inherits workflow-level permissions Not an issue — permissions are appropriate for read-only operations
.github/workflows/ci.yml:77-78 turbo-check escalates to contents:write Not an issue — correctly justified for OpenAPI snapshot commits
.github/workflows/ci.yml:27 All actions pinned to SHA Positive observation, not an issue
.github/workflows/ci.yml:238-244 Gate job preserves 'ci' name Positive observation, not an issue
.github/workflows/ci.yml:23-24 Appropriate runner and timeout Positive observation, not an issue
.github/workflows/ci.yml:54 Inconsistent restore-keys format (cosmetic) Too nitpicky for YAML style, MEDIUM confidence

@@ -192,6 +235,14 @@ jobs:
echo "Run \`pnpm check\` locally to reproduce the CI checks." >> $GITHUB_STEP_SUMMARY
fi
Copy link
Contributor

Choose a reason for hiding this comment

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

💭 Consider: Gate job condition could be strengthened

Issue: The current condition always() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') will pass if both fast-checks and turbo-check are skipped (skipped ≠ failure/cancelled).

Why: While both jobs share the same if condition so they'll skip together (maintaining prior behavior), an explicit success check makes the intent clearer and provides a safety net against future changes that might cause asymmetric skipping.

Fix: Consider adding && contains(needs.*.result, 'success') to require at least one job succeeded:

if: always() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') && contains(needs.*.result, 'success')

Refs:

- name: Check env.ts descriptions
run: pnpm check:env-descriptions

- name: Check route handler patterns
Copy link
Contributor

Choose a reason for hiding this comment

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

💭 Consider: New check added to CI

Issue: The check:route-handler-patterns step is a new addition to CI, not just a migration from the old ci job. The original workflow only ran format:check, check:env-descriptions, and knip as standalone steps.

Why: This is actually a good enhancement that aligns CI with the local pnpm check command (which includes route-handler-patterns). Just noting it since the PR description implies these checks are being "moved" rather than "added".

Fix: No code change needed — consider updating the PR description to clarify this is an intentional addition that aligns CI behavior with local pnpm check.

Refs:

@github-actions github-actions bot deleted a comment from claude bot Mar 12, 2026
Move lightweight checks (format, env-descriptions, route-handler-patterns,
knip) to a fast-checks job on ubuntu-latest (~3 min). Heavy checks (turbo
check, agents-docs lint/typecheck, OpenAPI snapshot, Playwright tests)
stay on turbo-check with ubuntu-32gb (~8 min). A ci gate job depends on
both to preserve the required status check name.

Both sub-jobs run in parallel, so the total CI time is max(fast, turbo)
instead of fast + turbo sequentially.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Contributor

@claude claude bot left a comment

Choose a reason for hiding this comment

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

PR Review Summary

(0) Total Issues | Risk: Low

This is a re-review following a pull_request:synchronize event. The code is unchanged from the prior review, and both pr-review-devops and pr-review-standards returned 0 new findings.

The PR correctly splits the monolithic CI workflow into two parallel jobs:

  • fast-checks (ubuntu-latest, 10min timeout): Format, env-descriptions, route-handler-patterns, knip
  • turbo-check (ubuntu-32gb, 30min timeout): Turbo build/lint/typecheck/test, Playwright, OpenAPI snapshots
  • ci (gate job): Verifies both sub-jobs succeeded, preserves required status check name

Implementation follows GitHub Actions best practices: SHA-pinned actions, appropriate permissions scoping, proper caching, and deterministic installs.

🕐 Pending Recommendations (2)


✅ APPROVE

Summary: No new issues found on re-review. The prior approval stands — this is a well-structured CI optimization that reduces total CI time by running lightweight checks in parallel with heavy turbo/playwright checks. The two pending Consider items from the prior review are optional enhancements; the PR is ready to merge. 🚀

Reviewers (2)
Reviewer Returned Main Findings Consider While You're Here Inline Comments Pending Recs Discarded
pr-review-devops 0 0 0 0 0 0 0
pr-review-standards 0 0 0 0 0 0 0
Total 0 0 0 0 0 0 0

Note: Re-review with no changes since prior APPROVE — reviewers confirmed no new issues.

@github-actions github-actions bot deleted a comment from claude bot Mar 13, 2026
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