Skip to content

ci: consolidate structural PR checks into one gate#4540

Open
ryjones wants to merge 1 commit into
mainfrom
ci/rollup-status-checks
Open

ci: consolidate structural PR checks into one gate#4540
ryjones wants to merge 1 commit into
mainfrom
ci/rollup-status-checks

Conversation

@ryjones

@ryjones ryjones commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Aggregate the structural, PR-metadata checks into a single required status context so branch protection can require one rollup instead of each check individually. The per-package CI check leaves are intentionally left as individual contexts (useful signal) and are not touched here.

Consolidate the two structural PR-lint workflows into one pr-structural-checks.yaml ("PR Structural Checks") holding all four jobs:

  • Commit Lint
  • Validate PR title
  • Validate PR title match with latest commit message
  • Validate PR Type

plus a PR Structural Checks Success rollup that needs all of them. It uses if: always() and fails only when a dependency result is failure or cancelled, so a skipped job is treated as passing. This replaces the former commitlint-pull-request.yaml and semantic-pull-request.yaml.

External app checks (DCO, dpulls, mergefreeze) emit their own status contexts and cannot be pulled into a workflow needs graph, so they stay standalone.

Follow-up (manual, after merge): require PR Structural Checks Success in place of the individual Commit Lint / Validate PR * contexts.

Pull Request Requirements

  • Rebased onto upstream/main branch and squashed into single commit to help maintainers review it more efficiently and to avoid spaghetti git commit graphs that obfuscate which commit did exactly what change, when, and why.
  • Have git sign-off at the end of the commit message (Signed-off-by: Name <email>) to certify the Developer Certificate of Origin (DCO). Use the -s flag with git commit. See signing commits for more information. AI agents must not add Signed-off-by tags — only the human submitter may certify the DCO (see AI Guidelines §7).
  • Follow the Conventional Commits specification for commit linting.
  • If AI tools were used, include an Assisted-by tag in the commit message per the AI Guidelines §2.2 (e.g., Assisted-by: GitHub-Copilot:claude-opus-4). All AI-generated code must be human-reviewed before submission.
  • Read and followed the Pull Request Guidelines.

Note: PRs that do not satisfy the requirements above will fail the
DCO checker and/or the commit lint CI checks and cannot be merged.

Character Limit

  • Pull Request Title and Commit Subject must not exceed 72 characters (including spaces and special characters).
  • Commit Message per line must not exceed 80 characters (including spaces and special characters).

A Must Read for Beginners
For rebasing and squashing, here's a must read guide for beginners.

@ryjones ryjones force-pushed the ci/rollup-status-checks branch 2 times, most recently from 5dc02cf to f394976 Compare July 4, 2026 12:11
@RafaelAPB

Copy link
Copy Markdown
Contributor

I think each package individual check leafs are useful and should remain as is; however, we could aggregate structural ones (DCO, PR title, PR body checks, etc) into one

@ryjones ryjones force-pushed the ci/rollup-status-checks branch from f394976 to afc0183 Compare July 5, 2026 15:48
@ryjones ryjones changed the title ci: add rollup status-check gates ci: consolidate structural PR checks into one gate Jul 5, 2026
@ryjones

ryjones commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

@RafaelAPB If this is how you intended I can mark ready for review whenever

@ryjones ryjones marked this pull request as ready for review July 5, 2026 20:05
@ryjones ryjones force-pushed the ci/rollup-status-checks branch from afc0183 to 06ed095 Compare July 6, 2026 10:58
@ryjones ryjones force-pushed the ci/rollup-status-checks branch 3 times, most recently from 9c09bfe to fad175b Compare July 6, 2026 15:45
@ryjones ryjones enabled auto-merge (rebase) July 7, 2026 12:28
@ryjones ryjones force-pushed the ci/rollup-status-checks branch from fad175b to 5713b90 Compare July 7, 2026 14:07
Aggregate the structural, PR-metadata checks into a single required status
context so branch protection can require one rollup instead of each check
individually. The per-package CI check leaves are intentionally left as
individual contexts (useful signal) and are not touched here.

Consolidate the two structural PR-lint workflows into one
`pr-structural-checks.yaml` ("PR Structural Checks") holding all four jobs:

- Commit Lint
- Validate PR title
- Validate PR title match with latest commit message
- Validate PR Type

plus a `PR Structural Checks Success` rollup that `needs` all of them. It
uses `if: always()` and fails only when a dependency result is `failure` or
`cancelled`, so a skipped job is treated as passing. This replaces the
former `commitlint-pull-request.yaml` and `semantic-pull-request.yaml`.

External app checks (DCO, dpulls, mergefreeze) emit their own status
contexts and cannot be pulled into a workflow `needs` graph, so they stay
standalone.

Follow-up (manual, after merge): require `PR Structural Checks Success` in
place of the individual Commit Lint / Validate PR * contexts.

Assisted-by: anthropic:claude-opus-4-8 actionlint
Signed-off-by: Ry Jones <ry@linux.com>
@sandeepnRES sandeepnRES force-pushed the ci/rollup-status-checks branch from 5713b90 to 2381f3e Compare July 7, 2026 14:09
@ryjones ryjones disabled auto-merge July 7, 2026 14: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.

3 participants