diff --git a/.github/workflows/pyinstaller.yml b/.github/workflows/pyinstaller.yml index d420467..ac90d37 100644 --- a/.github/workflows/pyinstaller.yml +++ b/.github/workflows/pyinstaller.yml @@ -2,54 +2,69 @@ name: Package exe with PyInstaller - Windows on: push: - branches: [ main, dev ] + branches: [main, dev] jobs: build: runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v4 + - name: Checkout + uses: actions/checkout@v4 - - name: PyInstaller Windows Build - uses: JackMcKew/pyinstaller-action-windows@main - with: - path: pyinstaller + # Wine Python (not Linux) runs PyInstaller; altgraph needs pkg_resources — reinstall setuptools after all deps. + - name: Prepare requirements for Wine (setuptools last) + run: | + set -euo pipefail + cp pyinstaller/requirements.txt pyinstaller/requirements-wine.txt + { + echo "" + echo "# CI: setuptools last so pkg_resources exists for PyInstaller/altgraph in Wine" + echo "setuptools==70.0.0" + } >> pyinstaller/requirements-wine.txt - - name: Upload PyInstaller Binary to Workflow as Artifact - uses: actions/upload-artifact@v4 - with: - name: maigret_standalone_win32 - path: pyinstaller/dist/windows + - name: PyInstaller Windows Build + uses: JackMcKew/pyinstaller-action-windows@main + with: + path: pyinstaller + requirements: requirements-wine.txt - - name: Download PyInstaller Binary - uses: actions/download-artifact@v4 - with: - name: maigret_standalone_win32 + - name: Upload PyInstaller Binary to Workflow as Artifact + if: success() + uses: actions/upload-artifact@v4 + with: + name: maigret_standalone_win32 + path: pyinstaller/dist/windows - - name: Create New Release and Upload PyInstaller Binary to Release - uses: ncipollo/release-action@v1.14.0 - id: create_release - with: - allowUpdates: true - draft: false - prerelease: false - artifactErrorsFailBuild: true - makeLatest: true - replacesArtifacts: true - artifacts: maigret_standalone.exe - name: Development Windows Release [${{ github.ref_name }}] - tag: ${{ github.ref_name }} - body: | - This is a development release built from the **${{ github.ref_name }}** branch. + - name: Download PyInstaller Binary + if: success() + uses: actions/download-artifact@v4 + with: + name: maigret_standalone_win32 - Take into account that `dev` releases may be unstable. - Please, use [the development release](https://github.com/soxoj/maigret/releases/tag/main) build from the **main** branch. + - name: Create New Release and Upload PyInstaller Binary to Release + if: success() + uses: ncipollo/release-action@v1.14.0 + id: create_release + with: + allowUpdates: true + draft: false + prerelease: false + artifactErrorsFailBuild: true + makeLatest: true + replacesArtifacts: true + artifacts: maigret_standalone.exe + name: Development Windows Release [${{ github.ref_name }}] + tag: ${{ github.ref_name }} + body: | + This is a development release built from the **${{ github.ref_name }}** branch. - Instructions: - - Download the attached file `maigret_standalone.exe` to get the Windows executable. - - Video guide on how to run it: https://youtu.be/qIgwTZOmMmM - - For detailed documentation, visit: https://maigret.readthedocs.io/en/latest/ + Take into account that `dev` releases may be unstable. + Please, use [the development release](https://github.com/soxoj/maigret/releases/tag/main) build from the **main** branch. - env: - GITHUB_TOKEN: ${{ github.token }} + Instructions: + - Download the attached file `maigret_standalone.exe` to get the Windows executable. + - Video guide on how to run it: https://youtu.be/qIgwTZOmMmM + - For detailed documentation, visit: https://maigret.readthedocs.io/en/latest/ + + env: + GITHUB_TOKEN: ${{ github.token }}