File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1- name : publish
1+ name : Publish to npm
22
33on :
44 release :
1717 uses : actions/setup-node@v4
1818 with :
1919 node-version : 22
20+ cache : npm
2021 registry-url : https://registry.npmjs.org
2122 - run : npm ci
2223 - run : npm run build
2324 - run : npm test
24- - run : npm publish --provenance --access public
25+ - name : Check package version
26+ id : package_check
27+ run : |
28+ PACKAGE_NAME=$(node -p "require('./package.json').name")
29+ PACKAGE_VERSION=$(node -p "require('./package.json').version")
30+ echo "package_name=${PACKAGE_NAME}" >> "$GITHUB_OUTPUT"
31+ echo "package_version=${PACKAGE_VERSION}" >> "$GITHUB_OUTPUT"
32+ if NPM_VIEW_OUTPUT=$(npm view "${PACKAGE_NAME}@${PACKAGE_VERSION}" version 2>&1); then
33+ echo "already_published=true" >> "$GITHUB_OUTPUT"
34+ echo "${PACKAGE_NAME}@${PACKAGE_VERSION} is already published, skipping publish."
35+ else
36+ if echo "$NPM_VIEW_OUTPUT" | grep -Eq "E404|404 Not Found"; then
37+ echo "already_published=false" >> "$GITHUB_OUTPUT"
38+ else
39+ echo "$NPM_VIEW_OUTPUT"
40+ exit 1
41+ fi
42+ fi
43+ - name : Publish package
44+ if : steps.package_check.outputs.already_published == 'false'
45+ run : |
46+ PACKAGE_NAME="${{ steps.package_check.outputs.package_name }}"
47+ if [[ "$PACKAGE_NAME" == @* ]]; then
48+ npm publish --provenance --access public
49+ else
50+ npm publish --provenance
51+ fi
You can’t perform that action at this time.
0 commit comments