try #43
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 macOS App | |
on: | |
push: | |
branches: | |
- master | |
- macos # debug - remove me | |
pull_request: | |
branches: | |
- master | |
- macos # debug - remove me | |
jobs: | |
build: | |
runs-on: macos-latest | |
steps: | |
- name: Checkout source code | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
# Probably worthless since we're already doing init above but worht a try | |
- name: Initialize Git submodules | |
run: | | |
git submodule update --init --recursive | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.13 | |
- name: brew update | |
run: brew update | |
- name: Install brew dependencies | |
run: brew install glib gobject-introspection gtk+3 pango cairo harfbuzz jpeg-xl ffmpeg@5 opusfile libopenmpt wavpack game-music-emu | |
- name: brew debug list | |
run: brew ls --verbose glib | |
- name: brew debug list2 | |
run: brew ls --verbose gobject-introspection | |
- 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_macos.txt \ | |
-r requirements_optional.txt \ | |
build \ | |
pyinstaller | |
- name: Build the project using python-build | |
run: | | |
source .venv/bin/activate | |
python -m build | |
find . | |
# python -m compile_translations # TODO | |
env: | |
CFLAGS: "-I/usr/local/include" | |
LDFLAGS: "-L/usr/local/lib" | |
- name: Install the project into a venv | |
run: | | |
source .venv/bin/activate | |
pip install --prefix ".venv" dist/*.whl | |
find . | |
env: | |
CFLAGS: "-I/usr/local/include" | |
LDFLAGS: "-L/usr/local/lib" | |
- name: Build macOS app with PyInstaller | |
run: | | |
source .venv/bin/activate | |
pyinstaller mac.spec | |
env: | |
CFLAGS: "-I/usr/local/include" | |
LDFLAGS: "-L/usr/local/lib" | |
- name: Create DMG | |
run: | | |
mkdir -p dist/dmg | |
APP_NAME="TauonMusicBox" | |
APP_PATH="dist/${APP_NAME}.app" | |
DMG_PATH="dist/dmg/${APP_NAME}.dmg" | |
# Create a .dmg package | |
hdiutil create -volname "$APP_NAME" -srcfolder "$APP_PATH" -ov -format UDZO "$DMG_PATH" | |
- name: Upload DMG artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: TauonMusicBox-dmg | |
path: dist/dmg/TauonMusicBox.dmg |