Update release workflow and drop Node v20 support - #293
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates the project’s release tooling to accommodate recent GitHub Actions permission changes by shifting releases to be driven by pushed tags (and optionally manual dispatch), while upgrading release-it to a newer major version.
Changes:
- Update
.github/workflows/release.yamlto run onv*tag pushes, resolve the tag for dispatch vs push events, and avoid duplicate releases. - Upgrade
release-itto^21.0.2(and refreshyarn.lockaccordingly). - Adjust
.release-it.jsand README guidance sorelease-itprepares the release commit, while the workflow handles tag-triggered GitHub/NPM releasing.
Reviewed changes
Copilot reviewed 4 out of 5 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/release.yaml |
Switch release triggering to tag pushes + dispatch, add a pre-check job, and update action pins/permissions. |
.release-it.js |
Disable tagging/GitHub release/npm publish by default (intended for “release commit only” usage). |
package.json |
Bump release-it dependency to ^21.0.2. |
yarn.lock |
Lockfile updates resulting from the release-it upgrade. |
README.md |
Update documented release process to match the new tag-driven workflow. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
- Relies on manually pushing a git tag, and on creating a Pull Request to merge the release commit into master.
risantos
force-pushed
the
support/update-release-workflow
branch
from
August 12, 2026 16:44
108430c to
c2280c7
Compare
Signed-off-by: Rafael Santos <rafael.santos@uphold.com>
risantos
force-pushed
the
support/update-release-workflow
branch
from
August 12, 2026 16:52
3940968 to
a1ac0cc
Compare
fixe
approved these changes
Aug 13, 2026
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 5 out of 6 changed files in this pull request and generated 1 comment.
Suppressed comments (3)
.github/workflows/release.yaml:30
- The workflow input/ref name is interpolated directly into a shell command. A manually supplied value (or valid Git tag name) containing shell substitution such as
$(...)will execute with this job'scontents: writeandid-token: writepermissions. Pass the expression throughenvand validate the expected release-tag format before writing it toGITHUB_OUTPUT; that also makes the later shell interpolation of this output safe.
- name: Resolve version tag
id: resolve-version-tag
run: echo "tag=${{ github.event.inputs.tag || github.ref_name }}" >> "$GITHUB_OUTPUT"
.github/workflows/release.yaml:65
- Both backfill commits named in the PR currently declare package version
10.0.0, not10.1.0or11.0.0. Consequently this check looks upvalidator.js-asserts@10.0.0, while the GitHub-release check uses the requested tag, andrelease-it --no-incrementlater derivesv10.0.0from the package version. Dispatching the documented tags therefore cannot create the intended v10.1.0/v11.0.0 GitHub releases. Derive and verify one version consistently from the tag, or backfill commits whose package versions match those tags.
NAME=$(node -p "require('./package.json').name")
VERSION=$(node -p "require('./package.json').version")
README.md:392
- The local release path is incomplete now that
.release-it.jshas abefore:inithook that exits unlessGITHUB_TOKENis set. An admin following this instruction will fail immediately without knowing the required environment variable; document the token requirement and the actual command used to generate the release commit.
1. A release commit is pushed, via Pull Request (or an admin running `release-it` locally).
Comment on lines
+4
to
+6
| push: | ||
| tags: | ||
| - 'v*' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
A recent security enhancement broke the current release workflow due to changes in the permissions.
We've had 2 release attempts failed, although still publishing to npmjs.
This update modifies the release workflow to support GitHub + NPM releases triggered by manually pushed tags.
release.yamlto trigger a release based on manually pushed tags.release-it@21.0.2.After merge
We have to manually create tags for releases v10.1.0 and v11.0.0, which were pushed to npmjs, but haven't had tagged commits with the releases nor GitHub Releases.
v10.1.0 https://www.npmjs.com/package/validator.js-asserts/v/10.1.0
v11.0.0 https://www.npmjs.com/package/validator.js-asserts/v/11.0.0
Then we'll open a PR to take care of the new release, v11.1.0, with updated changelogs and the actual v11.1.0 release commit.