Skip to content

Commit 0cb703c

Browse files
committed
chore: update release workflow to include version check and GitHub release creation
1 parent cc69b2b commit 0cb703c

1 file changed

Lines changed: 32 additions & 2 deletions

File tree

.github/workflows/release.yml

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,21 @@
1-
name: Publish to npm
1+
name: Release and Publish
22

33
on:
44
push:
55
branches:
66
- main
77

88
jobs:
9-
publish:
9+
release:
1010
runs-on: ubuntu-latest
11+
permissions:
12+
contents: write
13+
id-token: write
1114
steps:
1215
- name: Checkout 🛎️
1316
uses: actions/checkout@v4
17+
with:
18+
fetch-depth: 0
1419

1520
- uses: pnpm/action-setup@v4
1621

@@ -27,7 +32,32 @@ jobs:
2732
- name: Build package
2833
run: cd core && pnpm build
2934

35+
- name: Check if version changed
36+
id: version-check
37+
run: |
38+
CURRENT_VERSION=$(cd core && node -p "require('./package.json').version")
39+
echo "current_version=$CURRENT_VERSION" >> $GITHUB_OUTPUT
40+
41+
# Check if tag already exists
42+
if git tag -l | grep -q "^v$CURRENT_VERSION$"; then
43+
echo "version_changed=false" >> $GITHUB_OUTPUT
44+
else
45+
echo "version_changed=true" >> $GITHUB_OUTPUT
46+
fi
47+
48+
- name: Create GitHub Release
49+
if: steps.version-check.outputs.version_changed == 'true'
50+
uses: actions/create-release@v1
51+
env:
52+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
53+
with:
54+
tag_name: v${{ steps.version-check.outputs.current_version }}
55+
release_name: Release v${{ steps.version-check.outputs.current_version }}
56+
draft: false
57+
prerelease: false
58+
3059
- name: Publish to npm
60+
if: steps.version-check.outputs.version_changed == 'true'
3161
run: cd core && pnpm publish --no-git-checks --access public
3262
env:
3363
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

0 commit comments

Comments
 (0)