@@ -37,12 +37,18 @@ jobs:
37
37
run : yarn install
38
38
- name : Install conventional-changelog-cli
39
39
run : npm install -g conventional-changelog-cli
40
+ - name : Install cargo tools for license verification
41
+ run : |
42
+ cargo install --locked --version 0.8.2 cargo-about
40
43
- name : Update package.json version
41
44
run : |
42
45
npm version ${{ github.event.inputs.version }} --no-git-tag-version
43
46
- name : Update Cargo.toml version
44
47
run : |
45
48
sed -i 's/^version = ".*"/version = "${{ github.event.inputs.version }}"/' Cargo.toml
49
+ - name : Update third-party licenses
50
+ run : |
51
+ cargo about generate about.hbs > LICENSE-3RD-PARTY.txt
46
52
- name : Generate changelog
47
53
run : |
48
54
conventional-changelog -p conventionalcommits -i CHANGELOG.md -s
52
58
run : |
53
59
git config --local user.email "[email protected] "
54
60
git config --local user.name "GitHub Action"
55
- git add package.json Cargo.toml index.js index.d.ts CHANGELOG.md
61
+ git add package.json Cargo.toml index.js index.d.ts CHANGELOG.md LICENSE-3RD-PARTY.txt
56
62
git commit -m "${{ github.event.inputs.version }}"
57
63
git push
58
64
- name : Set version output
@@ -162,7 +168,22 @@ jobs:
162
168
- name : Publish to NPM
163
169
run : |
164
170
npm config set provenance true
165
- echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc
166
- npm publish --access public
171
+ COMMIT_MSG=$(git log -1 --pretty=%B)
172
+ if echo "$COMMIT_MSG" | grep -E "^[0-9]+\.[0-9]+\.[0-9]+$" > /dev/null;
173
+ then
174
+ echo "Publishing stable release to latest tag"
175
+ echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc
176
+ npm publish --access public
177
+ elif echo "$COMMIT_MSG" | grep -E "^[0-9]+\.[0-9]+\.[0-9]+" > /dev/null;
178
+ then
179
+ echo "Publishing pre-release to next tag"
180
+ echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc
181
+ npm publish --tag next --access public
182
+ else
183
+ echo "Invalid release tag format: '$COMMIT_MSG'"
184
+ echo "Expected format: X.Y.Z or X.Y.Z-suffix"
185
+ echo "Skipping publish"
186
+ exit 0
187
+ fi
167
188
env :
168
189
NPM_TOKEN : ${{ secrets.NPM_TOKEN }}
0 commit comments