Skip to content

fix(ci): re-arm release-merge on every check-producing workflow, not just CI - #323

Merged
Shinrai merged 4 commits into
nextfrom
fix/release-merge-rearm-all-checks
Sep 28, 2026
Merged

Shinrai merged 4 commits into
nextfrom
fix/release-merge-rearm-all-checks

Conversation

@cldmv-bot

@cldmv-bot cldmv-bot Bot commented Sep 28, 2026

Copy link
Copy Markdown
Contributor

🚀 What's Changed

💥 Breaking Changes

No breaking changes

✨ Features

No new features

🐛 Bug Fixes

  • fix(ci): re-arm release-merge on every check-producing workflow, not just CI (5fdce27)

📦 Dependencies

No dependency updates

🔧 Other Changes

No other changes

👥 Contributors

Shinrai and others added 4 commits September 27, 2026 21:49
The publish jobs run the generated command inside the downloaded
package-contents/ artifact: npm-pack output with no node_modules and no
lockfile. npm/pnpm/yarn publish still fire prepack/prepublishOnly/postpack
there, so a repo whose prepack runs a real build (e.g. tsup behind
"prepack": "npm run build") re-runs it in a directory that can't supply
its devDependencies and the publish dies with `tsup: not found` (exit
127) — CLDMV/vitest-runner v1.4.0 failed both registries this way.

build_command already ran in the build job before packing, so no
lifecycle script has work left at publish time. Add --ignore-scripts to
the default command for both npm and GitHub Packages, for every package
manager. A caller-supplied publish_command / github_packages_publish_command
is still used verbatim.

The command was built in three places — repo-detection (the one the
reusable workflow actually uses, core and satellites) plus the
publish-npm / publish-github-packages fallbacks — kept in sync by comment.
Move it into one shared buildPublishCommand() in
npm/utilities/publish-command with unit tests, so the flag can't drift
between them. Document the artifact publish contract and the custom
command caveat in docs/conventions/package-manager.md.

Fixes #320
…just CI

The merge gate waits on every check-run on the release PR's head commit,
from any workflow, but the caller's workflow_run trigger only named the
CI workflow. Whichever workflow finishes last is the only one whose
completion can see a fully green head — and CodeQL routinely outlasts CI.

v4.29.1's release PR #322 got stuck exactly this way: approved at
05:00:03, CI finished at 05:00:10 and re-fired release-merge, which
logged "waiting on 1 unfinished check(s): 🔍 Analyze javascript-typescript"
and exited; CodeQL finished at 05:00:51, wasn't in the workflow_run list,
and nothing re-fired. (The approval's own pull_request_review run was
replaced in the concurrency group's pending slot by a later workflow_run
run — harmless, since every run re-reads approval and check state from
the API.)

List every workflow that puts a check on a release-PR head: this repo's
own local-* set in local-release-merge.yml, and the whole standard v4
template set in the release-merge.yml caller template (names matched
byte-for-byte against the templates; an unlisted-in-repo name is
harmless). Add `branches: [next, hotfixes]` so feature-branch runs no
longer wake it up. Update the reusable's header and release-flow-v4.md
to match.

Existing adopters must re-sync their release-merge.yml — the trigger
lives in the caller file, not behind @v4.

Fixes #318
@cldmv-bot cldmv-bot Bot added ! fix → next v4 flow: fix contributor PR targeting the next integration branch type: ci Changes to CI workflows, actions, or build pipelines type: documentation Relates to docs, README updates, guides, or inline code comments labels Sep 28, 2026
@Shinrai
Shinrai merged commit 934b523 into next Sep 28, 2026
17 checks passed
@cldmv-bot
cldmv-bot Bot deleted the fix/release-merge-rearm-all-checks branch September 28, 2026 05:28
cldmv-bot Bot added a commit that referenced this pull request Sep 28, 2026
## 🚀 What's Changed

### 💥 Breaking Changes
_No breaking changes_

### ✨ Features
_No new features_

### 🐛 Bug Fixes
- #323
  - fix(ci): re-arm release-merge on every check-producing workflow, not just CI (5fdce27)

- #321
  - fix(ci): pass --ignore-scripts on the default publish command (c4dc1aa)

### 📦 Dependencies
_No dependency updates_

### 🔧 Other Changes
_No other changes_



<details>
<summary>👥 Contributors</summary>

- @Shinrai

</details>

<!-- co-authors -->

Co-authored-by: Shinrai <Shinrai@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

! fix → next v4 flow: fix contributor PR targeting the next integration branch type: ci Changes to CI workflows, actions, or build pipelines type: documentation Relates to docs, README updates, guides, or inline code comments

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant