chore(ci): update build workflow to include Windows support and improve release asset handling
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user