4242 run : |
4343 npm install -g semantic-release @semantic-release/changelog @semantic-release/git @semantic-release/github conventional-changelog-conventionalcommits
4444
45- - name : Run semantic-release
45+ - name : Get next version
4646 id : semantic
47- run : semantic-release
47+ run : |
48+ # Run semantic-release in dry-run mode to get the next version
49+ OUTPUT=$(semantic-release --dry-run)
50+ echo "$OUTPUT"
51+
52+ # Extract version from output
53+ VERSION=$(echo "$OUTPUT" | grep -oP 'The next release version is \K[0-9]+\.[0-9]+\.[0-9]+' || echo "")
54+
55+ if [ -n "$VERSION" ]; then
56+ echo "new-release-published=true" >> $GITHUB_OUTPUT
57+ echo "new-release-version=$VERSION" >> $GITHUB_OUTPUT
58+ echo "new-release-git-tag=v$VERSION" >> $GITHUB_OUTPUT
59+ echo "Found new version: $VERSION"
60+ else
61+ echo "new-release-published=false" >> $GITHUB_OUTPUT
62+ echo "No new version needed"
63+ fi
4864 env :
4965 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
5066
@@ -128,13 +144,21 @@ jobs:
128144 - name : Create archive (Windows)
129145 if : matrix.os == 'windows-latest'
130146 run : |
131- powershell -command "Compress-Archive -Path dist/glimpse.exe -DestinationPath glimpse-${{ needs.semantic-release.outputs.new-release-version }}-windows.zip"
147+ powershell -command "Compress-Archive -Path dist/glimpse.exe -DestinationPath glimpse-${{ needs.semantic-release.outputs.new-release-version }}-windows-x64 .zip"
132148
133- - name : Create archive (Unix )
134- if : matrix.os != 'windows -latest'
149+ - name : Create archive (Linux )
150+ if : matrix.os == 'ubuntu -latest'
135151 run : |
136152 cd dist
137- tar -czf ../glimpse-${{ needs.semantic-release.outputs.new-release-version }}-${{ matrix.name }}.tar.gz glimpse
153+ tar -czf ../glimpse-${{ needs.semantic-release.outputs.new-release-version }}-linux-x64.tar.gz glimpse
154+ cd ..
155+
156+ - name : Create archive (macOS)
157+ if : matrix.os == 'macos-latest'
158+ run : |
159+ cd dist
160+ # Create a simple tar.gz for macOS
161+ tar -czf ../glimpse-${{ needs.semantic-release.outputs.new-release-version }}-macos-x64.tar.gz glimpse
138162 cd ..
139163
140164 - name : Upload artifacts
@@ -145,7 +169,7 @@ jobs:
145169 glimpse-*.zip
146170 glimpse-*.tar.gz
147171
148- # Create GitHub release with all artifacts
172+ # Create the actual release with binaries
149173 release :
150174 name : Create Release
151175 runs-on : ubuntu-latest
@@ -154,6 +178,23 @@ jobs:
154178 steps :
155179 - name : Checkout
156180 uses : actions/checkout@v4
181+ with :
182+ fetch-depth : 0
183+ ssh-key : ${{ secrets.DEPLOY_KEY }}
184+
185+ - name : Setup Git
186+ run : |
187+ git config user.name "github-actions[bot]"
188+ git config user.email "github-actions[bot]@users.noreply.github.com"
189+
190+ - name : Setup Node.js
191+ uses : actions/setup-node@v4
192+ with :
193+ node-version : ' 20'
194+
195+ - name : Install semantic-release
196+ run : |
197+ npm install -g semantic-release @semantic-release/changelog @semantic-release/git @semantic-release/github conventional-changelog-conventionalcommits
157198
158199 - name : Download all artifacts
159200 uses : actions/download-artifact@v4
@@ -163,14 +204,25 @@ jobs:
163204 - name : Display structure of downloaded files
164205 run : ls -R ./artifacts
165206
166- - name : Upload release assets
207+ - name : Prepare release assets
208+ run : |
209+ mkdir -p release-assets
210+ find ./artifacts -name "*.zip" -o -name "*.tar.gz" | xargs -I {} cp {} release-assets/
211+ ls -la release-assets/
212+
213+ - name : Create version file for semantic-release
214+ run : |
215+ echo "VERSION = '${{ needs.semantic-release.outputs.new-release-version }}'" > src/version.py
216+
217+ - name : Run semantic-release (full release)
218+ run : semantic-release
219+ env :
220+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
221+
222+ - name : Upload release assets to GitHub release
167223 uses : softprops/action-gh-release@v1
168224 with :
169225 tag_name : ${{ needs.semantic-release.outputs.new-release-git-tag }}
170- name : Release ${{ needs.semantic-release.outputs.new-release-version }}
171- files : |
172- ./artifacts/**/*.zip
173- ./artifacts/**/*.tar.gz
174- generate_release_notes : true
226+ files : release-assets/*
175227 env :
176228 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments