name: Release # Baut Playtube fuer Windows und Linux und veroeffentlicht beide als Assets an einem # GitHub Release, sobald ein Tag im Format "vX.Y.Z" gepusht wird (z.B. durch # packaging/release.ps1). Playtube.exe/Playtube auf den Nutzer-Rechnern erkennt neue # Releases danach automatisch (siehe playtube/updater.py) und bietet die Installation an. on: push: tags: - "v*.*.*" workflow_dispatch: {} permissions: contents: write jobs: build-windows: runs-on: windows-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.12" - name: Abhaengigkeiten installieren run: | python -m pip install --upgrade pip pip install -r requirements.txt pip install pyinstaller - name: Playtube.exe bauen run: pyinstaller packaging\playtube.spec --noconfirm --distpath dist --workpath build - name: Als .zip packen run: Compress-Archive -Path dist\Playtube -DestinationPath Playtube-${{ github.ref_name }}-win64.zip - uses: actions/upload-artifact@v4 with: name: windows-build path: Playtube-${{ github.ref_name }}-win64.zip build-linux: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.12" - name: Qt-WebEngine-Laufzeitabhaengigkeiten installieren run: | sudo apt-get update sudo apt-get install -y \ libxkbcommon0 libegl1 libopengl0 libnss3 libnspr4 \ libxcomposite1 libxdamage1 libxrandr2 libxtst6 libxcursor1 \ libgbm1 libasound2t64 libatk-bridge2.0-0 libatk1.0-0 libcups2 \ libdbus-1-3 libdrm2 libpango-1.0-0 libpangocairo-1.0-0 \ libxfixes3 libxi6 libxext6 fonts-liberation - name: Abhaengigkeiten installieren run: | python -m pip install --upgrade pip pip install -r requirements.txt pip install pyinstaller - name: Playtube-Binary bauen run: pyinstaller packaging/playtube.spec --noconfirm --distpath dist --workpath build - name: Als .tar.gz packen run: tar -C dist -czf Playtube-${{ github.ref_name }}-linux-x86_64.tar.gz Playtube - uses: actions/upload-artifact@v4 with: name: linux-build path: Playtube-${{ github.ref_name }}-linux-x86_64.tar.gz publish-release: needs: [build-windows, build-linux] runs-on: ubuntu-latest steps: - uses: actions/download-artifact@v4 with: path: artifacts merge-multiple: true - name: GitHub Release veroeffentlichen uses: softprops/action-gh-release@v2 with: files: artifacts/* generate_release_notes: true