Explicitly specify packaged binary path #3
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 PyQt5 App | |
on: | |
push: | |
branches: [ main ] | |
env: | |
POETRY_VERSION: 1.4.1 | |
PACKAGE_NAME: metaanalyser | |
PACKAGE_VERSION: 0.1.0 | |
jobs: | |
build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest] | |
python-version: [3.11.1] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
# Setup Python environment | |
- name: Setup Python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
# Install system libraries for Linux | |
- name: Install Linux system libraries | |
if: runner.os == 'Linux' | |
run: sudo apt-get update && sudo apt-get install -y xvfb x11-utils libxkbcommon-x11-0 | |
# Install Poetry | |
- name: Install Poetry on Linux | |
if: runner.os == 'Linux' | |
run: | | |
curl -sSL https://install.python-poetry.org | python3 - --version ${{ env.POETRY_VERSION }} | |
echo "$HOME/.local/bin" >> $GITHUB_PATH | |
- name: Install Poetry on Windows | |
if: runner.os == 'Windows' | |
run: | | |
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python3 - --version ${{ env.POETRY_VERSION }} | |
echo "$env:APPDATA\Python\Scripts" | Out-File -FilePath $env:GITHUB_PATH -Append | |
# Install dependencies | |
- name: Install dependencies | |
run: poetry install | |
# Build PyQt5 app binary with PyInstaller | |
- name: Build with PyInstaller | |
run: | | |
pip install pyinstaller | |
pyinstaller --onefile --name ${{ env.PACKAGE_NAME }}_${{ env.PACKAGE_VERSION }} app/main.py | |
# Debug: List the full path of the generated package | |
- name: Debug - List full path of the generated package | |
run: | | |
echo "Full path of the generated package:" | |
find $(pwd) -type f -name "${{ env.PACKAGE_NAME }}_${{ env.PACKAGE_VERSION }}*" | |
# Package the binary | |
- name: Package Binary on Linux | |
if: runner.os == 'Linux' | |
run: tar czvf ${{ env.PACKAGE_NAME }}_${{ env.PACKAGE_VERSION }}_linux.tar.gz -C dist ${{ env.PACKAGE_NAME }}_${{ env.PACKAGE_VERSION }} | |
- name: Package Binary on Windows | |
if: runner.os == 'Windows' | |
run: Compress-Archive -Path .\dist\${{ env.PACKAGE_NAME }}_${{ env.PACKAGE_VERSION }}.exe -DestinationPath .\${{ env.PACKAGE_NAME }}_${{ env.PACKAGE_VERSION }}_windows.zip | |
# Debug: List the contents of the directory | |
- name: Debug - List directory contents | |
run: ls -R | |
# Upload the packaged binary as an artifact | |
- name: Upload Binary as Artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: ${{ runner.os }}-binary | |
path: ${{ github.workspace }}/*.{tar.gz,zip} |