Skip to content

ci(release): gate publish on inline lint/typecheck/test#18

Merged
ylabonte merged 1 commit into
mainfrom
ci/release-inline-gates
May 18, 2026
Merged

ci(release): gate publish on inline lint/typecheck/test#18
ylabonte merged 1 commit into
mainfrom
ci/release-inline-gates

Conversation

@ylabonte
Copy link
Copy Markdown
Owner

Summary

  • Release and CI workflows both fire on push: main independently, so a red tree could still trigger publish.
  • Inline the four CLAUDE.md gates (format:check, lint, typecheck, test) at the top of the Release job, between pnpm install and pnpm build.
  • Duplication with ci.yml is intentional; ~30s on a warm cache is the cost.

Trade-off considered

workflow_run trigger and merging the workflows are cleaner structurally but pull more rope (default-branch workflow resolution, mixing release config with CI). Inline gating has the smallest blast radius.

Test plan

  • Watch this PR's CI run go green.
  • Once merged: confirm Release run on main still reaches the changesets/action step (and ideally never has to fail the inline gate, because CI catches it first).

The Release and CI workflows both fire on `push: main` but with no
dependency between them — they run in parallel. A merge that broke
lint, format, or tests would still trigger Release, and depending on
whether the regression crashed `pnpm build`, could ship a broken
artifact.

Fix: re-run the four CLAUDE.md gates (format:check, lint, typecheck,
test) at the top of the Release job, between `pnpm install` and
`pnpm build`. Duplication with `ci.yml` is intentional and cheap
(~30s warm cache); cleaner alternatives (`workflow_run` trigger, or
merging the workflows) trade simplicity for separation-of-concerns.
The inline gate is the smallest blast-radius option.

No changeset entry — CI-only, not user-visible.
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds an inline CI gate to the Release workflow so publish is blocked if format/lint/typecheck/test fail, since release and CI run in parallel on push: main.

Changes:

  • Inserts four pnpm checks (format:check, lint, typecheck, test) between install and build in the Release job.
  • Adds an explanatory comment justifying the duplication with ci.yml.

@ylabonte ylabonte merged commit 223906e into main May 18, 2026
17 checks passed
@ylabonte ylabonte deleted the ci/release-inline-gates branch May 18, 2026 18:58
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.

2 participants