Skip to content

Commit 44ec8bb

Browse files
feat: include binaries in the build
1 parent 31ebce6 commit 44ec8bb

File tree

1 file changed

+65
-13
lines changed

1 file changed

+65
-13
lines changed

.github/workflows/release.yml

Lines changed: 65 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,25 @@ jobs:
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

Comments
 (0)