# Baut die Windows-Version (.exe, mit Windows-Python unter Wine) und die Linux-Version. # - jeder Push / PR: Tests + Programmdateien als Build-Artefakte # - Tag "v*" (z. B. v1.0.0): zusätzlich Gitea-Release mit .exe, .zip, Setup und Linux-.tar.gz name: Build on: push: branches: [main] tags: ["v*"] pull_request: workflow_dispatch: jobs: windows-exe: # Label ggf. an euren Runner anpassen (Runner braucht Docker; Wine steckt im Container-Image). runs-on: ubuntu-latest timeout-minutes: 30 # normal ca. 5 Minuten – ein Hänger darf den Runner nicht stundenlang belegen container: image: tobix/pywine:3.12 env: WINEPREFIX: /opt/wineprefix steps: - name: Werkzeuge für Checkout/Upload installieren run: | apt-get update -qq apt-get install -y -qq --no-install-recommends git nodejs ca-certificates xdotool >/dev/null - uses: actions/checkout@v4 - name: Tests + Build (.exe) run: ./build/build_windows.sh - name: Build-Artefakt hochladen uses: actions/upload-artifact@v3 with: name: Provisionsmanager95 path: | dist/Provisionsmanager95.exe dist/Provisionsmanager95-*.zip dist/Provisionsmanager-Setup-*.exe - name: Release erstellen / ergänzen if: startsWith(github.ref, 'refs/tags/v') env: TOKEN: ${{ secrets.RELEASE_TOKEN || secrets.GITEA_TOKEN }} API: ${{ github.server_url }}/api/v1/repos/${{ github.repository }} TAG: ${{ github.ref_name }} run: | V=$(tr -d '\r\n' < dist/VERSION) build/release_hochladen.sh dist/Provisionsmanager95.exe dist/Provisionsmanager95-$V.zip dist/Provisionsmanager-Setup-$V.exe linux: runs-on: ubuntu-latest timeout-minutes: 30 container: image: python:3.12-bookworm steps: - name: Werkzeuge installieren run: | apt-get update -qq apt-get install -y -qq --no-install-recommends git nodejs ca-certificates xvfb xauth fonts-dejavu-core >/dev/null - uses: actions/checkout@v4 - name: Tests + Build (Linux) run: ./build/build_linux.sh - name: Build-Artefakt hochladen uses: actions/upload-artifact@v3 with: name: Provisionsmanager95-Linux path: dist/Provisionsmanager95-linux-*.tar.gz - name: Release ergänzen if: startsWith(github.ref, 'refs/tags/v') env: TOKEN: ${{ secrets.RELEASE_TOKEN || secrets.GITEA_TOKEN }} API: ${{ github.server_url }}/api/v1/repos/${{ github.repository }} TAG: ${{ github.ref_name }} run: build/release_hochladen.sh dist/Provisionsmanager95-linux-x86_64-*.tar.gz