Skip to content

pyinstaller builds for macOS and Linux in the CI #36

pyinstaller builds for macOS and Linux in the CI

pyinstaller builds for macOS and Linux in the CI #36

Workflow file for this run

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'
# JXL is too old(?) on 24.04 so see you 2026-05 to enable that if we don't switch to Arch first.
- name: Install deps
run: |
sudo apt-get update
sudo apt-get install -y \
gettext \
gobject-introspection \
libgirepository1.0-dev \
python3-gi-cairo \
libcairo2-dev \
libpipewire-0.3-dev \
libdbus-1-dev \
libjxl-dev \
libflac-dev \
libgme-dev \
libmpg123-dev \
libopenmpt-dev \
libopusfile-dev \
libsamplerate0-dev \
libvorbis-dev \
libwavpack-dev
- 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 DMG
run: |
mkdir -p dist/dmg
APP_NAME="TauonMusicBox"
APP_PATH="dist/${APP_NAME}"
ZIP_PATH="dist/dmg/${APP_NAME}.zip"
zip -r "${ZIP_PATH}" "${APP_PATH}"
- name: Upload DMG artifact
uses: actions/upload-artifact@v4
with:
name: TauonMusicBox-linux
path: dist/dmg/TauonMusicBox.zip