Add Windows CI and fix up Linux and macOS #119
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build Linux app | |
on: | |
push: | |
pull_request: | |
jobs: | |
build: | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Checkout source code | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.13' | |
- name: Install deps | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y \ | |
gettext \ | |
gobject-introspection \ | |
gir1.2-rsvg-2.0 \ | |
kde-config-gtk-style \ | |
libgirepository1.0-dev \ | |
python3-gi-cairo \ | |
libayatana-appindicator3-dev \ | |
libcairo2-dev \ | |
libpipewire-0.3-dev \ | |
libdbus-1-dev \ | |
libjxl-dev \ | |
libflac-dev \ | |
libgme-dev \ | |
libmpg123-dev \ | |
libopenmpt-dev \ | |
libopusfile-dev \ | |
libsamplerate0-dev \ | |
libsdl2-image-dev \ | |
libvorbis-dev \ | |
libwavpack-dev | |
# JPEG-XL hack since 24.04 is too old | |
sudo apt-get install -y \ | |
libgif7 \ | |
wget | |
wget http://mirrors.kernel.org/ubuntu/pool/universe/j/jpeg-xl/libjxl-dev_0.10.3-4ubuntu1_amd64.deb | |
wget http://mirrors.kernel.org/ubuntu/pool/universe/j/jpeg-xl/libjxl0.10_0.10.3-4ubuntu1_amd64.deb | |
wget http://mirrors.kernel.org/ubuntu/pool/universe/h/highway/libhwy-dev_1.2.0-3ubuntu2_amd64.deb | |
wget http://mirrors.kernel.org/ubuntu/pool/universe/h/highway/libhwy1t64_1.2.0-3ubuntu2_amd64.deb | |
wget http://mirrors.kernel.org/ubuntu/pool/main/l/lcms2/liblcms2-dev_2.14-2build1_amd64.deb | |
sudo dpkg -i *.deb | |
- name: Install Python dependencies and setup venv | |
run: | | |
python -m pip install --upgrade pip | |
python -m venv .venv | |
source .venv/bin/activate | |
pip install \ | |
-r requirements.txt \ | |
build \ | |
pyinstaller | |
- name: Build the project using python-build | |
run: | | |
source .venv/bin/activate | |
python -m compile_translations | |
python -m build --wheel | |
- name: Install the project into a venv | |
run: | | |
source .venv/bin/activate | |
pip install --prefix ".venv" dist/*.whl | |
- name: "[DEBUG] List all files" | |
run: find . | |
- name: Build Linux App with PyInstaller | |
run: | | |
source .venv/bin/activate | |
pyinstaller --log-level=DEBUG linux.spec | |
- name: Create ZIP | |
run: | | |
mkdir -p dist/zip | |
APP_NAME="TauonMusicBox" | |
APP_PATH="dist/${APP_NAME}" | |
ZIP_PATH="dist/zip/${APP_NAME}.zip" | |
zip -r "${ZIP_PATH}" "${APP_PATH}" | |
- name: Upload ZIP artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: TauonMusicBox-linux | |
path: dist/zip/TauonMusicBox.zip |