name: Create Executables on: workflow_dispatch: release: types: [published] jobs: build: name: Build executables (${{ matrix.os }}) runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: include: - os: windows-latest artifact_suffix: windows - os: ubuntu-latest artifact_suffix: linux - os: macos-latest artifact_suffix: macos steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.11' - name: Install Linux system dependencies if: runner.os == 'Linux' run: sudo apt-get update && sudo apt-get install -y libxcb-cursor0 libxcb-xinerama0 - name: Install Python dependencies run: | python -m pip install --upgrade pip wheel setuptools python -m pip install -r requirements.txt python -m pip install pyinstaller pyinstaller_versionfile - name: Build client run: pyinstaller --clean client.spec - name: Build server run: pyinstaller --clean server.spec - name: Upload client artifact uses: actions/upload-artifact@v4 with: name: Zordon-client-${{ matrix.artifact_suffix }} path: | dist/Zordon-client dist/Zordon-client.exe dist/Zordon-client.app if-no-files-found: error - name: Upload server artifact uses: actions/upload-artifact@v4 with: name: Zordon-server-${{ matrix.artifact_suffix }} path: | dist/Zordon-server dist/Zordon-server.exe dist/Zordon-server.app if-no-files-found: error