History

Check changesets in CI

Rhys Sullivan committed 1 month ago

Commit 499da961 parent 3890d6f1 file · +36 −0Browse files

Showing the changes to .github (1 of 1 file). Show all

Unified · Split

.github/workflows/ci.yml+36−0
@@ -122,6 +122,42 @@ jobs: · 121 unmodified lines
122122
123123 - run: bun run lint
124124
125+ changesets:
126+ name: Changesets
127+ runs-on: blacksmith-4vcpu-ubuntu-2404
128+ timeout-minutes: 10
129+ steps:
130+ - uses: actions/checkout@v4
131+
132+ - uses: oven-sh/setup-bun@v2
133+ with:
134+ bun-version: 1.3.11
135+
136+ - name: Cache Bun package cache
137+ uses: actions/cache@v4
138+ with:
139+ path: ~/.bun/install/cache
140+ key: ${{ runner.os }}-bun-1.3.11-${{ hashFiles('bun.lock') }}
141+ restore-keys: |
142+ ${{ runner.os }}-bun-1.3.11-
143+
144+ - run: bun install --frozen-lockfile --ignore-scripts
145+
146+ # `changeset status` assembles the same release plan that `changeset
147+ # version` builds on main, so it rejects a mixed changeset (one that names
148+ # a package from the config `ignore` list next to a publishable one)
149+ # before it can break the release workflow. Release only runs on push to
150+ # main, so that error used to surface only after the merge.
151+ #
152+ # After the plan, `status` diffs HEAD against `baseBranch` (main) to
153+ # demand a changeset for every changed package. This repo does not require
154+ # that, and a pull request checkout has no local `main` ref at all, so the
155+ # diff errors out. Point `main` at HEAD (a no-op on push to main) so the
156+ # diff is empty and the job checks only the release plan.
157+ - run: git update-ref refs/heads/main HEAD
158+
159+ - run: bun run changeset status
160+
125161 typecheck:
126162 name: Typecheck
127163 runs-on: blacksmith-4vcpu-ubuntu-2404