Skip to content

chore(release): Phase 0 build pre-flight — the checks that only explode on the tag, before the freeze - #17276

Merged
diegosouzapw merged 3 commits into
release/v3.8.53from
chore/release-v3.8.53-phase0-build-preflight
Oct 20, 2026
Merged

diegosouzapw merged 3 commits into
release/v3.8.53from
chore/release-v3.8.53-phase0-build-preflight

Conversation

@diegosouzapw

Copy link
Copy Markdown
Collaborator

Why

"Run the build tests before generating" was only partially true for v3.8.52: the static gates were RELEASE-GREEN and main's CI matrix was green, yet three defects surfaced only on the tag, because no PR check exercises them:

Defect Why the PR CI is blind Cost on v3.8.52
electron/package-lock.json out of sync (npm ci EUSAGE) electron-release.yml installs with npm ci; the CI Electron smoke uses npm install, which repairs the lock silently fix #17212 + full Electron re-dispatch (hours) — same as #15157 on v3.8.51
Bun runner-web apt list with dead packages the stage is continue-on-error; it only surfaced through the stale-digest guard of the manifest job Docker manifests failed, fix #17223 + #17236 + re-dispatch (2 h)
README still claiming the previous version after the cycle bump the bump never touched README; detector covered since #15966 release/v3.8.53 born red — #17237

What this PR does

  • scripts/release/preflight-build.sh — one run, one table, one log per check (_artifacts/preflight/):
    • version claims (bump-version-claims.mjs --check), root and electron/ npm ci --dry-run --ignore-scripts — the --quick subset, ~20 s;
    • npm run test:vitest, npm run build:cli, npm run check:pack-boot (the packaging path npm-publish.yml runs) — skippable with --no-build when the CI artifact of the frozen tip is already proven;
    • scripts/release/preflight-bun-apt-smoke.sh — extracts the runner-web RUN apt-get … block from Dockerfile.bun verbatim, builds it alone on the Bun base image (default over ssh on the .113, PREFLIGHT_DOCKER_HOST="" for local Docker) and asks Chromium for its version — 2 minutes instead of the 12 GB stage. --no-docker skips it.
    • runs every check before exiting 1, so one run lists everything to fix.
  • The /generate-release skill (Phase 0, .agents repo) now calls the script before the freeze; the unit shards stay the release PR's CI evidence (8 × 40 min does not fit a local pre-flight).

Validation

Run Result
scripts/release/preflight-build.sh --quick on release/v3.8.53 (dba56ba9) ✅ version claims · root lock 62 s · electron lock 6 s
scripts/release/preflight-bun-apt-smoke.sh on the current Dockerfile.bun ❌ reproduces exactly the four E: lines of the release run (gconf-service, stdc++6, fonts-kacst) — passes with #17236's list (proven on the .113 before that PR)
bash -n both scripts ✅

⚠️ base-red inherited: the i18n translation-drift class on release/v3.8.53 — unrelated to this change.

…de on the tag, before the freeze

v3.8.52 shipped with three defects the PR CI never exercises: the electron/
lockfile out of sync (electron-release.yml installs with npm ci, the CI smoke
with npm install — #15157 on v3.8.51, #17212 on v3.8.52), the Bun runner-web
image's dead apt packages (best-effort stage, surfaced only through the
manifest guard — #17223/#17236) and README version claims the cycle bump
skipped (#17237).

scripts/release/preflight-build.sh runs them in one go with a result table and
per-check logs: version claims, root + electron `npm ci --dry-run`, vitest,
build:cli + pack-boot (the packaging path npm-publish runs) and the new
preflight-bun-apt-smoke.sh, which builds the runner-web apt block alone on
the Bun base image (default on the .113 over ssh). --quick keeps the 20-second
subset for a mid-cycle check. On release/v3.8.53 today: --quick passes; the
apt smoke reproduces the four E: lines until #17236 lands.
@github-actions

Copy link
Copy Markdown
Contributor

CI Coverage Report

  • Coverage job: skipped
  • PR test policy: success

Coverage artifact was not available for this run.

@diegosouzapw
diegosouzapw merged commit bbc9087 into release/v3.8.53 Oct 20, 2026
147 of 153 checks passed
@diegosouzapw
diegosouzapw deleted the chore/release-v3.8.53-phase0-build-preflight branch October 20, 2026 23:10
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.

1 participant