summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/pyinstaller-release.yaml76
1 files changed, 76 insertions, 0 deletions
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