Skip to content

Release via tanem/release-action - #3605

Merged
tanem merged 1 commit into
masterfrom
release-via-action
Aug 8, 2026
Merged

Release via tanem/release-action#3605
tanem merged 1 commit into
masterfrom
release-via-action

Conversation

@tanem

@tanem tanem commented Aug 8, 2026

Copy link
Copy Markdown
Owner

Moves this repo's release off the tanem-scripts npm package and onto the tanem/release-action composite action, SHA-pinned to v0.1.0. The label-driven bump, the Monday cron and the OIDC provenance publish all carry over unchanged — what goes away is the devDependency, the RELEASE_TOKEN PAT and the regenerated CHANGELOG.md.

The workflow keeps its filename, which is load-bearing: npm's trusted publisher for this package matches on repo plus workflow filename, so renaming it would need the publisher updated first. npm ci and npm test are equally load-bearing — this package has no prepublishOnly, so the dist/ that reaches the registry is the one npm test builds through its build step, and the tests gate the release exactly as they did before. Both were verified locally: a full npm test passes and leaves the working tree clean, which matters because npm version refuses a dirty tree.

The if: github.ref == 'refs/heads/master' guard is kept deliberately. ci.yml runs on v* as well as master, so breaking work can be staged on a long-lived version branch; the cron only ever fires on the default branch, but a manual dispatch can target any branch, and without the guard one of those would publish a half-finished major. The locked fleet workflow shape doesn't carry the guard, but it doesn't forbid a job condition either, and dropping it would have been a silent regression against the workflow this replaces.

The push now uses the ambient GITHUB_TOKEN instead of RELEASE_TOKEN. That required removing master's required ci status check, since a push made with GITHUB_TOKEN does not trigger workflows and so a bump commit can never earn a check of its own. Force-push and deletion protection stay in place, and Renovate is unaffected — it reads branch status itself rather than relying on GitHub's native auto-merge. setup-node also loses registry-url (redundant under trusted publishing) and cache: 'npm', and the git-identity step goes because the action sets github-actions[bot] itself.

CHANGELOG.md is closed at v19.1.2 with a pointer to GitHub Releases, which becomes the canonical changelog and is generated from the same labels via the new .github/release.yml. AUTHORS is left in place but is now stale: nothing regenerates it, and removing a contributor credit is a separate call. AGENTS.md and MIGRATION.md are updated to describe the flow that now exists.

Regenerating the lockfile also corrects a stale packages[""].version it had been carrying — that is not a version bump. A local dry-run against this repo at the pinned action version reports Nothing to release: no merged pull requests since the last release, which is the correct skip for the current state of master.

@tanem tanem added the internal label Aug 8, 2026
@tanem
tanem force-pushed the release-via-action branch from 16c2919 to 0b97b6c Compare August 8, 2026 04:12
Replaces the tanem-scripts release command with the composite action.
The version bump still comes from the labels on PRs merged since the
last tag; what changes is what produces it and what it writes.

The workflow drops the RELEASE_TOKEN checkout credential: the action
pushes the bump commit and tag with the ambient GITHUB_TOKEN. That only
works because master's required status check has been removed — a
GITHUB_TOKEN push cannot trigger workflows, so a bump commit can never
earn a `ci` check of its own, and waiting for one would deadlock.

setup-node loses registry-url, which trusted publishing makes redundant,
and cache: 'npm', which the fleet workflow shape does not carry. The
git-identity step goes too: the action sets github-actions[bot] itself.

The `if: github.ref == 'refs/heads/master'` guard stays. The cron only
fires on the default branch, but a manual dispatch can target any
branch, and without the guard one of those would bump, tag and publish
that branch to npm as latest.

npm ci and npm test are load-bearing steps, not hygiene. This package
has no prepublishOnly, so the dist/ that reaches the registry is the one
npm test builds via its build step, and the tests gate the release
exactly as they did under the old flow.

CHANGELOG.md is closed at v19.1.2; GitHub Releases takes over,
categorised by the same labels through .github/release.yml. AUTHORS is
left in place but goes stale — nothing regenerates it now, and removing
a contributor credit is a separate call.

Regenerating the lockfile also corrects a stale packages[""].version it
had been carrying.
@tanem
tanem force-pushed the release-via-action branch from 0b97b6c to 58165b9 Compare August 8, 2026 04:23
@tanem
tanem merged commit 8bfc749 into master Aug 8, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant