Skip to content

ci: build the platform engines once per release, on the push that lands it on main, and publish that build (#1350) - #1351

Merged
swapnilpaliwal-sd merged 1 commit into
devfrom
ci/build-once-on-release
Sep 25, 2026
Merged

swapnilpaliwal-sd merged 1 commit into
devfrom
ci/build-once-on-release

Conversation

@swapnilpaliwal-sd

Copy link
Copy Markdown
Contributor

Closes #1350.

A release built every platform's engines three times: on the pull request into main, on the push that landed it, and in publish-npm. Each is about 40 minutes of five runners, and the last meant the published binaries were not the ones the five-platform e2e tested.

event before after
pull request into dev / main main: engines + pack + e2e on 5 platforms suites, build, hygiene only
push to main, version not yet tagged engines + e2e engines + pack + e2e on 5 platforms: the release build
push to main, version already tagged engines + e2e suites only, nothing to release
release.yml tag + draft on every push tag + draft only after the release build's CI run is green, on the commit it tested
publish-npm (draft published) rebuilds every engine fresh ships that green run's engine artifacts and the exact code-graph tarball the e2e installed; refuses without a green run
  • A pull request into main may not reuse a released version (its tag exists). The existing version gate still refuses a change that reaches users without a new version; a CI or docs change can keep main's version, and landing it builds nothing.
  • Engine and tarball artifacts are kept 90 days, so a draft published later still finds them.

v0.1.1 is already tagged and drafted by the previous flow; publishing it runs the publish-npm at that tag, which still rebuilds. The new flow starts with the next version.

…ds it on main, and publish that build (#1350)

No pull request builds the platform engines any more. A push to main whose
version has no tag yet builds every platform and runs the five-platform e2e;
release.yml tags and drafts only after that run is green; publish-npm ships
that run's engines and code-graph tarball instead of compiling again. A pull
request into main may not reuse a released version, and a change that keeps
main's version (CI, docs) builds nothing when it lands.
@swapnilpaliwal-sd
swapnilpaliwal-sd merged commit 966c0f3 into dev Sep 25, 2026
12 checks passed
@swapnilpaliwal-sd
swapnilpaliwal-sd deleted the ci/build-once-on-release branch September 25, 2026 23:39
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.

ci: build the platform engines once per release, on the commit that lands on main, and publish exactly that build

1 participant