You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Clarify that skipped checks can satisfy required status checks
- Document changeset-release/<base> from changesets/action
- Prefer CI complete for one unambiguous required check
Copy file name to clipboardExpand all lines: .github/CONTRIBUTING.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,9 @@ bun run check-updates # interactive dependency updates (`bun update -i --lates
18
18
19
19
### `main` and pull requests
20
20
21
-
Branch **`main`** is **protected**: routine work does **not** push directly to `main`. Open a **pull request** and merge only after **[CI](workflows/ci.yml)** passes (format, lint, typecheck, test, build).
21
+
Branch **`main`** is **protected**: routine work does **not** push directly to `main`. Open a **pull request** and merge only after **[CI](workflows/ci.yml)** passes.
22
+
23
+
**Required status checks:** Prefer requiring the single check **`CI complete`** (aggregates the matrix). PRs from **`changeset-release/<branch>`** (Changesets “Version packages”; see [changesets/action](https://github.com/changesets/action)) skip the heavy jobs here; per [GitHub](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches#require-status-checks-before-merging), **`skipped`** can still satisfy required checks — **`CI complete`** remains the clearest green/red signal. Ensure job **names** are unique across workflows ([docs](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches#about-branch-protection-rules)).
Copy file name to clipboardExpand all lines: .github/workflows/ci.yml
+56Lines changed: 56 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -1,3 +1,10 @@
1
+
# Version PRs from `changesets/action` use head branch `changeset-release/<base>` (e.g. `changeset-release/main`;
2
+
# see changesets/action `run.ts`: `versionBranch = \`changeset-release/${branch}\``).
3
+
#
4
+
# GitHub docs: required status checks may be successful, skipped, or neutral — skipped often still allows merge
5
+
# (see https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches#require-status-checks-before-merging ).
6
+
# This workflow still gates on `changeset-release/*` and finishes with one **`CI complete`** job so there is a
7
+
# single unambiguous pass/fail (branch protection also warns that duplicate job *names* across workflows can block merges).
1
8
name: CI
2
9
3
10
on:
@@ -9,8 +16,26 @@ on:
9
16
- main
10
17
11
18
jobs:
19
+
skip-ci:
20
+
name: Gate (skip full CI for version PRs?)
21
+
runs-on: ubuntu-latest
22
+
outputs:
23
+
skip: ${{ steps.gate.outputs.skip }}
24
+
steps:
25
+
- id: gate
26
+
run: |
27
+
if [ "${{ github.event_name }}" = "pull_request" ] && \
28
+
echo "${{ github.head_ref }}" | grep -q '^changeset-release/'; then
29
+
echo "skip=true" >> "$GITHUB_OUTPUT"
30
+
echo "Head is changeset-release/* — full CI skipped; ci-complete will pass."
0 commit comments