99 version-changed : ${{ steps.check.outputs.changed }}
1010 current-version : ${{ steps.check.outputs.current-version }}
1111 previous-version : ${{ steps.check.outputs.previous-version }}
12+ is-prerelease : ${{ steps.check.outputs.is-prerelease }}
13+ npm-tag : ${{ steps.check.outputs.npm-tag }}
1214 steps :
1315 - uses : actions/checkout@v4
1416 with :
3032 echo "changed=false" >> $GITHUB_OUTPUT
3133 fi
3234
35+ # Check if this is a pre-release version
36+ if [[ "$current_version" =~ -(alpha|beta|rc|dev|pre|canary|next) ]]; then
37+ echo "is-prerelease=true" >> $GITHUB_OUTPUT
38+ tag="$(echo "$current_version" | cut -d'-' -f2)"
39+ echo "npm-tag=$tag" >> $GITHUB_OUTPUT
40+ echo "Detected pre-release version with tag: $tag"
41+ else
42+ echo "is-prerelease=false" >> $GITHUB_OUTPUT
43+ echo "npm-tag=latest" >> $GITHUB_OUTPUT
44+ echo "Detected stable release version"
45+ fi
46+
3347 build-and-publish :
3448 runs-on : ubuntu-latest
3549 needs : check-version
@@ -48,14 +62,22 @@ jobs:
4862 registry-url : " https://registry.npmjs.org"
4963 - run : npm ci
5064 - run : npm run build
51- - run : npm publish --provenance --access public
65+ - name : Publish to npm
66+ run : |
67+ if [ "${{ needs.check-version.outputs.is-prerelease }}" == "true" ]; then
68+ npm publish --provenance --access public --tag ${{ needs.check-version.outputs.npm-tag }}
69+ else
70+ npm publish --provenance --access public
71+ fi
5272 env :
5373 NODE_AUTH_TOKEN : ${{ secrets.NPM_TOKEN }}
5474
5575 create-release :
5676 runs-on : ubuntu-latest
5777 needs : [check-version, build-and-publish]
58- if : needs.build-and-publish.result == 'success'
78+ if :
79+ needs.build-and-publish.result == 'success' && needs.check-version.outputs.is-prerelease ==
80+ ' false'
5981 permissions :
6082 contents : write
6183 steps :
0 commit comments