Skip to content

Commit 3023cd3

Browse files
authored
chore: add support for prerelease publishing (#90)
1 parent decdc0c commit 3023cd3

File tree

1 file changed

+44
-3
lines changed

1 file changed

+44
-3
lines changed

.github/workflows/publish.yml

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,53 @@ jobs:
88
runs-on: ubuntu-latest
99
steps:
1010
- uses: actions/checkout@v3
11+
12+
- name: Parse version from tag
13+
id: version
14+
uses: release-kit/semver@v2
15+
16+
- name: Display Release Plan
17+
if: ${{ !github.event.release.prerelease && !steps.version.outputs.prerelease }}
18+
run: |
19+
echo "Publishing release ${{ steps.version.outputs.full }}"
20+
21+
- name: Display Pre-release Plan
22+
if: ${{ github.event.release.prerelease && steps.version.outputs.prerelease }}
23+
run: |
24+
echo "Publishing pre-relese ${{ steps.version.outputs.full }}"
25+
26+
- name: Validate inputs
27+
if: ${{ (github.event.release.prerelease && !steps.version.outputs.prerelease) || (!github.event.release.prerelease && steps.version.outputs.prerelease) }}
28+
run: |
29+
RED='\033[0;31m'
30+
NC='\033[0m' # No Color
31+
echo -e "${RED}Pre-release label in semver but GitHub release is not marked as pre-release or vice-versa${NC}"
32+
exit 1;
33+
1134
- uses: actions/setup-node@v3
1235
with:
1336
node-version: '18.x'
14-
- run: npm install
15-
- run: npm test
16-
- uses: JS-DevTools/npm-publish@v1
37+
- run: yarn install
38+
- run: yarn test
39+
40+
- name: Publish Latest
41+
uses: JS-DevTools/npm-publish@v3
42+
if: ${{ !github.event.release.prerelease && !steps.version.outputs.prerelease }}
1743
with:
1844
token: ${{ secrets.NPM_TOKEN }}
1945
access: public
46+
47+
- name: Publish Pre-release
48+
uses: JS-DevTools/npm-publish@v3
49+
if: ${{ github.event.release.prerelease && steps.version.outputs.prerelease }}
50+
with:
51+
token: ${{ secrets.NPM_TOKEN }}
52+
access: public
53+
tag: ${{ steps.version.outputs.prerelease }}
54+
55+
- name: Upload npm debug log
56+
if: failure() # This step will run only if the previous steps failed
57+
uses: actions/upload-artifact@v4
58+
with:
59+
name: npm-debug-logs
60+
path: /home/runner/.npm/_logs/*.log

0 commit comments

Comments
 (0)