chore(ci): update build workflow to include Windows support and improve release asset handling
Some checks failed
CI / lint (push) Failing after 4m54s
CI / build-frontend (push) Successful in 9m32s

This commit is contained in:
2026-01-02 09:31:16 -06:00
parent 20c0e10767
commit fea9389a14

View File

@@ -71,7 +71,7 @@ jobs:
- name: Install system dependencies - name: Install system dependencies
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install -y patchelf libopusfile0 ffmpeg espeak-ng sudo apt-get install -y patchelf libopusfile0 ffmpeg espeak-ng wine nsis
- name: Setup Task - name: Setup Task
uses: https://git.quad4.io/actions/setup-task@0ab1b2a65bc55236a3bc64cde78f80e20e8885c2 # v1 uses: https://git.quad4.io/actions/setup-task@0ab1b2a65bc55236a3bc64cde78f80e20e8885c2 # v1
@@ -87,24 +87,38 @@ jobs:
- name: Build Python wheel - name: Build Python wheel
run: task wheel run: task wheel
- name: Build Electron App (Universal) - name: Build Electron App (Linux)
run: pnpm run dist-prebuilt run: task build-electron-linux
- name: Build Electron App (Windows)
run: task build-electron-windows
- name: Prepare release assets - name: Prepare release assets
run: | run: |
mkdir -p release-assets mkdir -p release-assets
# Collect artifacts # Collect artifacts
find dist -type f \( -name "*-linux*.AppImage" -o -name "*-linux*.deb" \) -exec cp {} release-assets/ \; find dist -type f \( -name "*-linux*.AppImage" -o -name "*-linux*.deb" \) -exec cp {} release-assets/ \;
find dist -type f \( -name "*-win*.exe" -o -name "*-win-portable*.exe" \) -exec cp {} release-assets/ \;
find python-dist -type f -name "*.whl" -exec cp {} release-assets/ \; find python-dist -type f -name "*.whl" -exec cp {} release-assets/ \;
# Generate checksums # Generate checksums
cd release-assets cd release-assets
for file in *; do
if [ -f "$file" ] && [[ "$file" != *.sha256 ]]; then
sha256sum "$file" | tee "${file}.sha256"
fi
done
# Generate release notes (outside release-assets directory)
cd ..
echo "## SHA256 Checksums" > release-body.md echo "## SHA256 Checksums" > release-body.md
echo "" >> release-body.md echo "" >> release-body.md
for file in *; do for file in release-assets/*; do
if [ -f "$file" ] && [ "$file" != "release-body.md" ] && [[ "$file" != *.sha256 ]]; then if [ -f "$file" ] && [[ "$file" != *.sha256 ]] && [[ "$file" != *release-body.md* ]]; then
sha256sum "$file" | tee "${file}.sha256" filename=$(basename "$file")
echo "\`$(cat "${file}.sha256")\`" >> release-body.md if [ -f "release-assets/${filename}.sha256" ]; then
echo "\`$(cat "release-assets/${filename}.sha256")\`" >> release-body.md
fi
fi fi
done done
@@ -129,8 +143,13 @@ jobs:
gitea_token: ${{ secrets.GITEA_TOKEN }} gitea_token: ${{ secrets.GITEA_TOKEN }}
title: ${{ steps.version.outputs.version }} title: ${{ steps.version.outputs.version }}
tag: ${{ steps.version.outputs.version }} tag: ${{ steps.version.outputs.version }}
files: "release-assets/*" files: |
bodyFile: "release-assets/release-body.md" release-assets/*.AppImage
release-assets/*.deb
release-assets/*.exe
release-assets/*.whl
release-assets/*.sha256
body_path: "release-body.md"
draft: false draft: false
prerelease: false prerelease: false