Skip to content

ci: keep required checks present for light PRs#3704

Merged
Hmbown merged 1 commit into
mainfrom
codex/ci-required-check-placeholders
Jun 27, 2026
Merged

ci: keep required checks present for light PRs#3704
Hmbown merged 1 commit into
mainfrom
codex/ci-required-check-placeholders

Conversation

@Hmbown

@Hmbown Hmbown commented Jun 27, 2026

Copy link
Copy Markdown
Owner

Summary

  • Keep the required Lint, Test (...), and npm wrapper smoke (...) contexts present for docs/workflow-only PRs.
  • Move the expensive Rust setup/test/smoke steps behind needs.changes.outputs.heavy step conditions instead of skipping the whole job.
  • Add explicit successful skip steps for light PRs, while keeping the harvested contributor credit check active in Lint.

This is meant to fix the current ruleset mismatch where clean light PRs like #3607 and #3684 are blocked because the required matrix contexts never get created.

Testing

  • cargo fmt --all -- --check (not run; workflow-only YAML change)
  • cargo clippy --workspace --all-targets --all-features (not run; workflow-only YAML change)
  • cargo test --workspace --all-features (not run; workflow-only YAML change)
  • git diff --check
  • ruby -e 'require "yaml"; YAML.load_file(".github/workflows/ci.yml"); puts "yaml ok"'\n- [ ] GitHub CI on this PR validates the workflow behavior\n\n## Checklist\n\n- [x] Updated docs or comments as needed\n- [x] Added or updated tests where relevant (GitHub workflow validation is the relevant test here)\n- [x] Verified TUI behavior manually if UI changes (N/A: no TUI changes)\n- [x] Harvested/co-authored credit uses a GitHub numeric noreply address (N/A: no harvested contributor commit)\n

Docs-only and workflow-only PRs can skip the heavy Rust work, but the repository ruleset still requires Lint, Test, and npm wrapper smoke contexts. Previously those jobs were skipped at the job level, so otherwise-green PRs could not be merged normally.

Run the jobs for light changes and make their expensive steps conditional instead, leaving an explicit successful skip step in each required context. Keep the harvested-credit check active in Lint so docs harvests still get credit validation.

Verification: git diff --check; Ruby YAML parse of .github/workflows/ci.yml.
@claude

claude Bot commented Jun 27, 2026

Copy link
Copy Markdown

Claude finished @Hmbown's task in 1m 45s —— View job


PR Review: ci: keep required checks present for light PRs

  • Gather context
  • Read the CI workflow diff
  • Review the changes
  • Post findings

Summary

The approach is correct and well-targeted. Moving the heavy gate from job-level if conditions to step-level guards is the right fix — it lets the jobs start, create their required check contexts, and exit cleanly for light PRs without running expensive Rust toolchain setup.

Findings

Correctness — no bugs found. Logic coverage across the three jobs:

Scenario lint test (Win/Mac) test (Linux) npm-wrapper-smoke
light PR checkout + harvest check + skip echo skip echo only skip echo only skip echo only
heavy PR full Rust lint full test run Linux echo only (tests on CNB) full smoke
schedule full Rust lint full test run Linux echo only skipped (job-level if)

The schedule path is unchanged: detect always emits heavy=true for schedule events, so the step-level if: needs.changes.outputs.heavy == 'true' guards behave identically to the old job-level ones.

checkout in lint is intentionally unconditional — the harvest contributor credit check needs full git history (fetch-depth: 0) and runs on all non-schedule events regardless of heavy. This is correct.

Minor resource note: light PRs now spin up 3 matrix runners for test (ubuntu/macos/windows) and 1 for npm-wrapper-smoke just to run echo. That's the expected tradeoff for getting required contexts created — acceptable given that the alternative is blocking clean docs/workflow-only PRs indefinitely.

npm-wrapper-smoke job-level if simplification (heavy == 'true' dropped, schedule exclusion kept) is safe. Since heavy=true for schedule events, the old conjunct was redundant with the explicit schedule exclusion that was kept.

Verdict

No correctness issues. The changes are minimal, focused, and achieve the stated goal. The harvest check behavior is preserved. Good to merge.

@Hmbown Hmbown merged commit 8f26c8b into main Jun 27, 2026
19 checks passed
@Hmbown Hmbown deleted the codex/ci-required-check-placeholders branch June 27, 2026 18:12
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