Skip to content

Polish manual GUI updates #14

Polish manual GUI updates

Polish manual GUI updates #14

name: Build PolyCouncil (Cross-Platform)
on:
workflow_dispatch:
push:
branches: [ main ]
jobs:
build:
strategy:
fail-fast: false
matrix:
os: [windows-latest, ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install Linux Qt runtime dependencies
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y libegl1 libgl1 libopengl0 libxkbcommon-x11-0 libxcb-cursor0
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements-dev.txt
- name: Run tests
env:
QT_QPA_PLATFORM: offscreen
run: |
pytest -q
- name: Build executable
run: |
python -m PyInstaller council.py --name PolyCouncil --clean --noconfirm --windowed --onefile
- name: Package artifact (Windows)
if: runner.os == 'Windows'
shell: pwsh
run: |
Compress-Archive -Path dist/PolyCouncil.exe -DestinationPath dist/PolyCouncil-windows.zip -Force
- name: Package artifact (Linux)
if: runner.os == 'Linux'
run: |
chmod +x dist/PolyCouncil || true
tar -czf dist/PolyCouncil-linux.tar.gz -C dist PolyCouncil
- name: Package artifact (macOS)
if: runner.os == 'macOS'
run: |
chmod +x dist/PolyCouncil || true
tar -czf dist/PolyCouncil-macos.tar.gz -C dist PolyCouncil
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: PolyCouncil-${{ runner.os }}
path: |
dist/PolyCouncil.exe
dist/PolyCouncil-windows.zip
dist/PolyCouncil
dist/PolyCouncil-linux.tar.gz
dist/PolyCouncil-macos.tar.gz
if-no-files-found: ignore