File tree Expand file tree Collapse file tree 3 files changed +77
-2
lines changed
Expand file tree Collapse file tree 3 files changed +77
-2
lines changed Original file line number Diff line number Diff line change @@ -112,7 +112,25 @@ jobs:
112112 uses : oven-sh/setup-bun@v1
113113 with :
114114 bun-version : latest
115- - name : Read project information and publish release
115+ - name : Check if GitHub release already exists
116+ id : release-check
117+ run : |
118+ PACKAGE_VERSION=$(node -p "require('./package.json').version")
119+ TAG_NAME="js_$PACKAGE_VERSION"
120+ echo "Checking if release $TAG_NAME already exists"
121+
122+ # Check if release exists
123+ if gh release view "$TAG_NAME" >/dev/null 2>&1; then
124+ echo "Release $TAG_NAME already exists"
125+ echo "should_create_release=false" >> $GITHUB_OUTPUT
126+ else
127+ echo "Release $TAG_NAME does not exist"
128+ echo "should_create_release=true" >> $GITHUB_OUTPUT
129+ fi
130+ env :
131+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
132+ - name : Create GitHub release
133+ if : steps.release-check.outputs.should_create_release == 'true'
116134 run : |
117135 PACKAGE_VERSION=$(node -p "require('./package.json').version")
118136 PACKAGE_NAME=$(node -p "require('./package.json').name")
Original file line number Diff line number Diff line change @@ -160,7 +160,25 @@ jobs:
160160 toolchain : stable
161161 profile : minimal
162162 override : true
163- - name : Read project information and publish release
163+ - name : Check if GitHub release already exists
164+ id : release-check
165+ run : |
166+ PACKAGE_VERSION=$(grep '^version = ' Cargo.toml | head -1 | sed 's/version = "\(.*\)"/\1/')
167+ TAG_NAME="rust_$PACKAGE_VERSION"
168+ echo "Checking if release $TAG_NAME already exists"
169+
170+ # Check if release exists
171+ if gh release view "$TAG_NAME" >/dev/null 2>&1; then
172+ echo "Release $TAG_NAME already exists"
173+ echo "should_create_release=false" >> $GITHUB_OUTPUT
174+ else
175+ echo "Release $TAG_NAME does not exist"
176+ echo "should_create_release=true" >> $GITHUB_OUTPUT
177+ fi
178+ env :
179+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
180+ - name : Create GitHub release
181+ if : steps.release-check.outputs.should_create_release == 'true'
164182 run : |
165183 PACKAGE_NAME=$(grep '^name = ' Cargo.toml | head -1 | sed 's/name = "\(.*\)"/\1/')
166184 PACKAGE_VERSION=$(grep '^version = ' Cargo.toml | head -1 | sed 's/version = "\(.*\)"/\1/')
Original file line number Diff line number Diff line change 1+ #! /bin/bash
2+
3+ # Test script to verify the release check logic
4+ # This simulates what the GitHub Actions workflows would do
5+
6+ echo " === Testing JS release check logic ==="
7+ cd js
8+ PACKAGE_VERSION=$( node -p " require('./package.json').version" )
9+ TAG_NAME=" js_$PACKAGE_VERSION "
10+ echo " Checking if release $TAG_NAME already exists"
11+
12+ if gh release view " $TAG_NAME " > /dev/null 2>&1 ; then
13+ echo " ✅ Release $TAG_NAME already exists - would skip creation"
14+ SHOULD_CREATE_JS=false
15+ else
16+ echo " ❌ Release $TAG_NAME does not exist - would create"
17+ SHOULD_CREATE_JS=true
18+ fi
19+
20+ echo
21+ echo " === Testing Rust release check logic ==="
22+ cd ../rust
23+ PACKAGE_VERSION=$( grep ' ^version = ' Cargo.toml | head -1 | sed ' s/version = "\(.*\)"/\1/' )
24+ TAG_NAME=" rust_$PACKAGE_VERSION "
25+ echo " Checking if release $TAG_NAME already exists"
26+
27+ if gh release view " $TAG_NAME " > /dev/null 2>&1 ; then
28+ echo " ✅ Release $TAG_NAME already exists - would skip creation"
29+ SHOULD_CREATE_RUST=false
30+ else
31+ echo " ❌ Release $TAG_NAME does not exist - would create"
32+ SHOULD_CREATE_RUST=true
33+ fi
34+
35+ echo
36+ echo " === Summary ==="
37+ echo " JS release creation needed: $SHOULD_CREATE_JS "
38+ echo " Rust release creation needed: $SHOULD_CREATE_RUST "
39+ echo " Both workflows should now handle existing releases gracefully!"
You can’t perform that action at this time.
0 commit comments