Skip to content

Commit 4e9355f

Browse files
committed
ci: allow exact trusted npm preview versions
1 parent 37ceca8 commit 4e9355f

1 file changed

Lines changed: 15 additions & 1 deletion

File tree

.github/workflows/npm_trusted_release.yml

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ on:
3535
- patch
3636
- minor
3737
- major
38+
version:
39+
description: "Exact npm version to publish; overrides release-type/preid. Use a prerelease version for preview publishes, e.g. 9.0.0-preview.0"
40+
required: false
41+
type: string
3842
preid:
3943
description: "Prerelease identifier (used only when release-type=prerelease; also becomes the npm dist-tag, e.g. next | canary)"
4044
required: false
@@ -134,11 +138,13 @@ jobs:
134138
shell: bash
135139
env:
136140
RELEASE_TYPE: ${{ inputs.release-type }}
141+
PACKAGE_VERSION: ${{ inputs.version }}
137142
PREID: ${{ inputs.preid }}
138143
TARGET: ${{ matrix.target }}
139144
run: |
140145
set -euo pipefail
141146
release_type="$RELEASE_TYPE"
147+
package_version="$PACKAGE_VERSION"
142148
preid="$PREID"
143149
target="$TARGET"
144150
if [ "$target" = "react-native" ]; then
@@ -155,7 +161,9 @@ jobs:
155161
fi
156162
157163
pushd "$pkg_dir" >/dev/null
158-
if [ "$release_type" = "prerelease" ]; then
164+
if [ -n "$package_version" ]; then
165+
npm version "$package_version" --no-git-tag-version >/dev/null
166+
elif [ "$release_type" = "prerelease" ]; then
159167
npm version prerelease --preid "$preid" --no-git-tag-version >/dev/null
160168
else
161169
npm version "$release_type" --no-git-tag-version >/dev/null
@@ -164,6 +172,10 @@ jobs:
164172
popd >/dev/null
165173
166174
NPM_TAG=$(NPM_VERSION="$NPM_VERSION" node ./scripts/get-npm-tag.js "$npm_tag_target")
175+
if [ -n "$package_version" ] && [ "$release_type" = "prerelease" ] && [ "$NPM_TAG" = "latest" ]; then
176+
echo "Exact prerelease publishes must include a prerelease identifier (for example 9.0.0-preview.0)." >&2
177+
exit 1
178+
fi
167179
echo "NPM_VERSION=$NPM_VERSION" >> "$GITHUB_OUTPUT"
168180
echo "NPM_TAG=$NPM_TAG" >> "$GITHUB_OUTPUT"
169181
echo "PACKAGE_DIR=$pkg_dir" >> "$GITHUB_OUTPUT"
@@ -332,6 +344,7 @@ jobs:
332344
env:
333345
PACKAGE_SELECTION: ${{ inputs.engine }}
334346
RELEASE_TYPE: ${{ inputs.release-type }}
347+
PACKAGE_VERSION: ${{ inputs.version }}
335348
PREID: ${{ inputs.preid }}
336349
DRY_RUN: ${{ inputs.dry-run }}
337350
TARGETS: ${{ needs.matrix.outputs.targets }}
@@ -340,6 +353,7 @@ jobs:
340353
run: |
341354
echo "Package selection: $PACKAGE_SELECTION"
342355
echo "Release type: $RELEASE_TYPE"
356+
echo "Exact version: $PACKAGE_VERSION"
343357
echo "Preid: $PREID"
344358
echo "Dry run: $DRY_RUN"
345359
echo "Targets: $TARGETS"

0 commit comments

Comments
 (0)