From 1c22e00c64c866307e6d1e4b07f9787e25086686 Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Wed, 25 Jun 2025 18:03:16 -0500 Subject: add github action for releases --- .github/workflows/pyinstaller-release.yaml | 76 ++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 .github/workflows/pyinstaller-release.yaml (limited to '.github/workflows') diff --git a/.github/workflows/pyinstaller-release.yaml b/.github/workflows/pyinstaller-release.yaml new file mode 100644 index 0000000..44e2716 --- /dev/null +++ b/.github/workflows/pyinstaller-release.yaml @@ -0,0 +1,76 @@ +name: Build Release + +on: + release: + types: [created] + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + arch: [x64, arm64] + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Install Webpack dependencies + working-directory: ./static + run: npm install + + - name: Run Webpack + working-directory: ./static + run: npx webpack + + - name: Set up QEMU for cross-architecture + if: matrix.arch == 'arm64' + uses: docker/setup-qemu-action@v3 + with: + platforms: arm64 + +# - name: Run pyinstaller +# uses: sayyid5416/pyinstaller@v1 +# with: +# python_arch: ${{ matrix.arch }} +# spec: 'pix.spec' +# requirements: 'requirements.txt' +# #upload_exe_with_name: 'pix' +# options: --onefile + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.10' + + - name: Install Python dependencies + run: | + python -m pip install --upgrade pip + pip install pyinstaller + pip install -r requirements.txt + + - name: Install system dependencies for arm64 + if: matrix.arch == 'arm64' + run: | + sudo apt-get update + sudo apt-get install -y zlib1g-dev libffi-dev libssl-dev + + - name: Run PyInstaller + env: + TARGET_ARCH: ${{ matrix.arch }} + run: | + if [ "${{ matrix.arch }}" = "arm64" ]; then + pyinstaller --onefile --target-arch aarch64 pix.py + else + pyinstaller --onefile pix.py + fi + + - name: Upload executable + uses: actions/upload-artifact@v4 + with: + name: pixpy-${{ matrix.arch }} + path: dist/pix -- cgit v1.2.3