Skip to content

Commit f5599cb

Browse files
committed
chore: align staged publish workflows
1 parent c6b42e8 commit f5599cb

1 file changed

Lines changed: 57 additions & 0 deletions

File tree

.github/workflows/release.yaml

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*.*.*'
7+
- 'v*.*.*-*'
8+
permissions:
9+
contents: write
10+
id-token: write
11+
packages: write
12+
13+
jobs:
14+
release:
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- name: Checkout code
19+
uses: actions/checkout@v6
20+
21+
- name: Setup Node.js
22+
uses: actions/setup-node@v6
23+
with:
24+
node-version: '26.x'
25+
registry-url: 'https://registry.npmjs.org'
26+
cache: 'npm'
27+
28+
- name: Install dependencies
29+
run: npm ci
30+
31+
- name: Run all checks and build
32+
run: npm run all
33+
34+
- name: Verify the integrity of provenance attestations and registry signatures for installed dependencies
35+
run: npm audit signatures
36+
37+
- name: Determine npm tag and release type
38+
id: release-info
39+
run: |
40+
VERSION=$(node -p "require('./package.json').version")
41+
if [[ "$VERSION" =~ -.*$ ]]; then
42+
echo "npm_tag=next" >> $GITHUB_OUTPUT
43+
echo "is_prerelease=true" >> $GITHUB_OUTPUT
44+
else
45+
echo "npm_tag=latest" >> $GITHUB_OUTPUT
46+
echo "is_prerelease=false" >> $GITHUB_OUTPUT
47+
fi
48+
49+
- name: Stage publish to npm
50+
run: npm stage publish --provenance --access public --tag ${{ steps.release-info.outputs.npm_tag }}
51+
52+
- name: Create GitHub Release
53+
uses: softprops/action-gh-release@v3
54+
with:
55+
generate_release_notes: true
56+
prerelease: true
57+
make_latest: false

0 commit comments

Comments
 (0)