name: Build and Release on: push: branches: - main jobs: build-x86_64: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.11' - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt - name: Build with PyInstaller run: | cd app pyinstaller --onefile --add-data "ui:ui" wolServer.py - name: Upload Artifact uses: actions/upload-artifact@v3 with: name: executable-x86_64 path: app/dist/wolServer build-arm: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Docker uses: docker/setup-buildx-action@v2 - name: Build ARM Executable run: | docker run --rm -v $(pwd):/src:Z -w /src \ --platform linux/arm/v7 \ python:3.11-slim-buster /bin/sh -c " python -m pip install --upgrade pip && pip install pyinstaller && cd app && pyinstaller --onefile --add-data 'ui:ui' wolServer.py " - name: Upload ARM Artifact uses: actions/upload-artifact@v3 with: name: executable-arm path: app/dist/wolServer release: needs: [build-x86_64, build-arm] runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Create Release env: GITEA_TOKEN: ${{ secrets.mytoken }} run: | release_id=$(curl -X POST "https://git.konsthol.eu/api/v1/repos/konsthol/WOL-Ly/releases" \ -H "Authorization: token ${{ secrets.mytoken }}" \ -H "Content-Type: application/json" \ -d '{ "tag_name": "v1.0.0", "target_commitish": "main", "name": "v1.0.0", "body": "Release description", "draft": false, "prerelease": false }' | jq -r '.id') - name: Upload x86_64 Executable to Release env: GITEA_TOKEN: ${{ secrets.mytoken }} run: | curl --data-binary "@app/dist/wolServer" \ -H "Authorization: token ${{ secrets.mytoken }}" \ -H "Content-Type: application/octet-stream" \ "https://git.konsthol.eu/api/v1/repos/konsthol/WOL-Ly/releases/${release_id}/assets?name=wolServer-x86_64" - name: Upload ARM Executable to Release env: GITEA_TOKEN: ${{ secrets.mytoken }} run: | curl --data-binary "@app/dist/wolServer" \ -H "Authorization: token ${{ secrets.mytoken }}" \ -H "Content-Type: application/octet-stream" \ "https://git.konsthol.eu/api/v1/repos/konsthol/WOL-Ly/releases/${release_id}/assets?name=wolServer-arm"