name: macOS package on: push: tags: [ '**' ] workflow_dispatch: jobs: build: runs-on: macos-14 steps: - uses: actions/checkout@v2 - name: Set up python env: PYVER: '3.9.7' PYVER_SHORT: '3.9' run: | wget -O python.pkg "https://www.python.org/ftp/python/${PYVER}/python-${PYVER}-macosx10.9.pkg" sudo installer -pkg python.pkg -target / echo "/Library/Frameworks/Python.framework/Versions/${PYVER_SHORT}/bin" >> $GITHUB_PATH - name: Install dependencies run: | python3 -m pip install --upgrade pip python3 -m pip install --no-binary=Pillow \ Pillow attrs configobj py2app pycotap pygame pysol-cards setuptools six ttkthemes if [ -f requirements.txt ]; then pip install -r requirements.txt; fi brew install create-dmg - name: Get cardsets run: | wget -O cardsets-pack.tar.xz "https://sourceforge.net/projects/pysolfc/files/PySolFC-Cardsets/minimal/PySolFC-Cardsets--Minimal-3.0.0.tar.xz/download" tar -xJf cardsets-pack.tar.xz mv PySolFC-Cardsets--Minimal-3.0.0/cardset-* data - name: Prepare game rules (process the HTML) and translations run: | make rules mo - name: Create the executable .app run: | PYTHONPATH="." python3 setup_osx.py py2app zip -q -r -X PySolFC-app.zip dist - name: Make the .dmg for easy installation run: create-dmg --volname "Install PySolFC" --volicon data/PySol.icns --background html-src/images/pysollogo01.png --window-size 800 400 --icon PySolFC.app 200 185 --app-drop-link 600 185 --skip-jenkins PySolFC.dmg dist - name: Upload zipped app uses: actions/upload-artifact@v4 with: name: pysolfc-app path: PySolFC-app.zip - name: Upload dmg uses: actions/upload-artifact@v4 with: name: pysolfc-dmg path: PySolFC.dmg