Skip to content

Commit bc43fa2

Browse files
committed
Fix GitHub Release race condition and jpackage hang in standalone workflow
1 parent 360964c commit bc43fa2

1 file changed

Lines changed: 40 additions & 14 deletions

File tree

.github/workflows/standalone.yml

Lines changed: 40 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ jobs:
1313
strategy:
1414
matrix:
1515
os: [ubuntu-latest, windows-latest, macos-latest]
16+
outputs:
17+
version: ${{ steps.get_version.outputs.VERSION }}
1618

1719
steps:
1820
- name: Checkout Code
@@ -29,47 +31,71 @@ jobs:
2931
run: mvn clean package -Puberjar -DskipTests
3032

3133
- name: Get Project Version
34+
id: get_version
3235
shell: bash
33-
run: echo "VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV
36+
run: |
37+
VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
38+
echo "VERSION=$VERSION" >> $GITHUB_ENV
39+
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
40+
41+
- name: Prepare jpackage Input
42+
shell: bash
43+
run: |
44+
mkdir package-input
45+
cp target/gemini-java-client-uber-${{ env.VERSION }}.jar package-input/
3446
3547
- name: Package Native App (jpackage)
3648
shell: bash
3749
run: |
38-
# Create app image (portable folder)
39-
jpackage --name "Anahata v1" \
50+
jpackage --name "Anahata-v1" \
4051
--app-version "${{ env.VERSION }}" \
41-
--input target \
52+
--input package-input \
4253
--main-jar "gemini-java-client-uber-${{ env.VERSION }}.jar" \
4354
--main-class uno.anahata.ai.swing.Main \
4455
--type app-image \
45-
--dest dist
56+
--dest dist \
57+
--verbose
4658
4759
# Zip/Tar the result for distribution
48-
cd dist
4960
if [ "${{ matrix.os }}" == "windows-latest" ]; then
50-
7z a "../Anahata-v1-${{ env.VERSION }}-windows.zip" "Anahata v1"
61+
7z a "Anahata-v1-${{ env.VERSION }}-windows.zip" "./dist/Anahata-v1"
5162
elif [ "${{ matrix.os }}" == "macos-latest" ]; then
52-
zip -r "../Anahata-v1-${{ env.VERSION }}-macos.zip" "Anahata v1.app"
63+
cd dist && zip -r "../Anahata-v1-${{ env.VERSION }}-macos.zip" "Anahata-v1.app" && cd ..
5364
else
54-
tar -czf "../Anahata-v1-${{ env.VERSION }}-linux.tar.gz" "Anahata v1"
65+
tar -czf "Anahata-v1-${{ env.VERSION }}-linux.tar.gz" -C dist "Anahata-v1"
5566
fi
5667
5768
- name: Upload Artifacts
5869
uses: actions/upload-artifact@v4
5970
with:
60-
name: Anahata-v1-${{ matrix.os }}
71+
name: bin-${{ matrix.os }}
6172
path: |
6273
Anahata-v1-*.zip
6374
Anahata-v1-*.tar.gz
75+
package-input/gemini-java-client-uber-*.jar
76+
77+
release:
78+
name: Create GitHub Release
79+
needs: build
80+
if: startsWith(github.ref, 'refs/tags/')
81+
runs-on: ubuntu-latest
82+
permissions:
83+
contents: write
84+
steps:
85+
- name: Download All Artifacts
86+
uses: actions/download-artifact@v4
87+
with:
88+
path: all-artifacts
89+
pattern: bin-*
90+
merge-multiple: true
6491

6592
- name: Create Release
66-
if: startsWith(github.ref, 'refs/tags/')
6793
uses: softprops/action-gh-release@v2
6894
with:
6995
files: |
70-
Anahata-v1-*.zip
71-
Anahata-v1-*.tar.gz
72-
target/gemini-java-client-uber-${{ env.VERSION }}.jar
96+
all-artifacts/Anahata-v1-*.zip
97+
all-artifacts/Anahata-v1-*.tar.gz
98+
all-artifacts/gemini-java-client-uber-*.jar
7399
draft: false
74100
prerelease: false
75101
env:

0 commit comments

Comments
 (0)