ci: add docs-only status-check shim so docs PRs aren't blocked#1455
Merged
Conversation
`main.yml` skips docs/media paths via `paths-ignore`, which leaves the required `lint`/`test` checks unsatisfiable on docs-only PRs and BLOCKED by branch protection. `main-docs.yml` is the mirror image: triggers only on those paths, emits matching job names (`lint`, `test`) that succeed immediately. Together the two workflows form a partition — exactly one runs per push/PR. Also tidies the now-stale header comment on `main.yml`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR introduces a GitHub Actions “docs-only” CI shim so documentation/media-only changes still emit the required lint and test check contexts needed by the master ruleset, preventing such PRs from being permanently blocked.
Changes:
- Added a new workflow (
main-docs.yml) that runs only on selected docs/media paths and immediately succeedslint/test. - Updated
main.ymlheader comment to point to the shim workflow as the mechanism that satisfies required checks for docs-only changes.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
.github/workflows/main.yml |
Updates the top-of-file comment to reference the new docs-only shim workflow. |
.github/workflows/main-docs.yml |
Adds the docs-only “status-check shim” workflow emitting immediate-success lint and test jobs. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+11
to
+27
| on: | ||
| push: | ||
| branches: [master] | ||
| paths: | ||
| - '*.md' | ||
| - 'media/**' | ||
| - 'packages/melonjs/DOC_README.md' | ||
| pull_request: | ||
| types: [opened, synchronize] | ||
| paths: | ||
| - '*.md' | ||
| - 'media/**' | ||
| - 'packages/melonjs/DOC_README.md' | ||
|
|
||
| concurrency: | ||
| group: ci-${{ github.ref }} | ||
| cancel-in-progress: true |
Comment on lines
+3
to
+6
| # Required `lint`/`test` checks are satisfied for those PRs by the shim in | ||
| # `main-docs.yml`, which mirrors this file's path filters and emits matching | ||
| # job names that succeed immediately. Together the two form a partition — | ||
| # exactly one runs per push/PR. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
.github/workflows/main-docs.yml: mirror image ofmain.yml— triggers only on docs/media paths and emitslint+testjobs that succeed immediatelymain.ymlWhy
The
masterruleset requireslintandtestchecks.main.yml'spaths-ignoremeans docs-only PRs never produce those checks, so they sit inBLOCKEDstate with no path forward short of admin bypass (which the ruleset has none configured) or a no-op non-md commit. PR #1453 (single-line CONTRIBUTING.md change) is the current example. The shim fixes this permanently.How it works
lint,test) match the contexts required by themasterruleset → GitHub treats the shim's success runs as satisfying the gate.paths(the inverse ofpaths-ignore) means exactly one of the two workflows runs per event — no double CI on real changes.name: Build & Test) and concurrency group are identical, so the existing required-checks config keeps working.Test plan
lint=successandtest=successfrom the shim, unblocking mergemain.ymland not the shim (pathsfilters are mutually exclusive)lint/testinmain.yml, rename them inmain-docs.ymltoo — the names must match the required contexts in the ruleset🤖 Generated with Claude Code