99 MACOSX_DEPLOYMENT_TARGET : " 12.0"
1010
1111jobs :
12- release :
12+ create-release :
13+ runs-on : ubuntu-latest
14+ permissions :
15+ contents : write
16+ outputs :
17+ release_id : ${{ steps.create.outputs.release_id }}
18+ changelog : ${{ steps.changelog.outputs.body }}
19+ steps :
20+ - uses : actions/checkout@v4
21+ with :
22+ fetch-depth : 0
23+
24+ - name : Generate changelog
25+ id : changelog
26+ env :
27+ GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
28+ run : |
29+ PREV_TAG=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo "")
30+ if [ -n "$PREV_TAG" ]; then
31+ BODY=$(gh api repos/${{ github.repository }}/releases/generate-notes \
32+ -f tag_name="${{ github.ref_name }}" \
33+ -f previous_tag_name="$PREV_TAG" \
34+ --jq '.body')
35+ else
36+ BODY=$(gh api repos/${{ github.repository }}/releases/generate-notes \
37+ -f tag_name="${{ github.ref_name }}" \
38+ --jq '.body')
39+ fi
40+ if [ -z "$BODY" ]; then
41+ BODY="Bug fixes and improvements."
42+ fi
43+ {
44+ echo "body<<CHANGELOG_EOF"
45+ echo "$BODY"
46+ echo "CHANGELOG_EOF"
47+ } >> "$GITHUB_OUTPUT"
48+
49+ - name : Create draft release
50+ id : create
51+ env :
52+ GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
53+ run : |
54+ RELEASE_ID=$(gh api repos/${{ github.repository }}/releases \
55+ -f tag_name="${{ github.ref_name }}" \
56+ -f name="HarnessKit ${{ github.ref_name }}" \
57+ -f body="${{ steps.changelog.outputs.body }}" \
58+ -F draft=true \
59+ --jq '.id')
60+ echo "release_id=$RELEASE_ID" >> "$GITHUB_OUTPUT"
61+
62+ release-desktop :
63+ needs : create-release
1364 strategy :
1465 matrix :
1566 include :
@@ -63,33 +114,6 @@ jobs:
63114 security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k actions build.keychain
64115 rm certificate.p12
65116
66- - name : Generate changelog
67- id : changelog
68- env :
69- GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
70- run : |
71- # Use GitHub's auto-generated release notes (includes PR titles,
72- # authors, commit links, and "New Contributors" section).
73- PREV_TAG=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo "")
74- if [ -n "$PREV_TAG" ]; then
75- BODY=$(gh api repos/${{ github.repository }}/releases/generate-notes \
76- -f tag_name="${{ github.ref_name }}" \
77- -f previous_tag_name="$PREV_TAG" \
78- --jq '.body')
79- else
80- BODY=$(gh api repos/${{ github.repository }}/releases/generate-notes \
81- -f tag_name="${{ github.ref_name }}" \
82- --jq '.body')
83- fi
84- if [ -z "$BODY" ]; then
85- BODY="Bug fixes and improvements."
86- fi
87- {
88- echo "body<<CHANGELOG_EOF"
89- echo "$BODY"
90- echo "CHANGELOG_EOF"
91- } >> "$GITHUB_OUTPUT"
92-
93117 - name : Build desktop app
94118 uses : tauri-apps/tauri-action@v0
95119 env :
@@ -101,11 +125,7 @@ jobs:
101125 TAURI_SIGNING_PRIVATE_KEY : ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
102126 TAURI_SIGNING_PRIVATE_KEY_PASSWORD : ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
103127 with :
104- tagName : ${{ github.ref_name }}
105- releaseName : " HarnessKit ${{ github.ref_name }}"
106- releaseBody : ${{ steps.changelog.outputs.body || 'Bug fixes and improvements.' }}
107- releaseDraft : true
108- prerelease : false
128+ releaseId : ${{ needs.create-release.outputs.release_id }}
109129 tauriScript : cargo tauri
110130 args : --target ${{ matrix.target }}
111131
@@ -122,7 +142,7 @@ jobs:
122142 gh release upload "${{ github.ref_name }}" "hk-macos-${{ matrix.arch }}" --clobber
123143
124144 release-cli-linux :
125- needs : release
145+ needs : create- release
126146 runs-on : ubuntu-22.04
127147 permissions :
128148 contents : write
@@ -165,7 +185,7 @@ jobs:
165185 gh release upload "${{ github.ref_name }}" hk-linux-x64 --clobber
166186
167187 release-cli-windows :
168- needs : release
188+ needs : create- release
169189 runs-on : windows-latest
170190 permissions :
171191 contents : write
0 commit comments