Files
Playtube/.github/workflows/release.yml
T
Fojadrachi d14272991c
Release (Edge) / build-windows (push) Waiting to run
Release (Edge) / publish-release (push) Blocked by required conditions
fix: Release mit gh statt softprops veroeffentlichen, Notizen aus Datei
2026-09-26 20:40:09 +02:00

91 lines
3.4 KiB
YAML

name: Release (Edge)
# Baut Playtube Edge (Microsoft-Edge-Engine / WebView2) fuer Windows und veroeffentlicht Setup
# und ZIP an einem GitHub Release, sobald ein Tag im Format "vX.Y.Z-edge" gepusht wird.
#
# WICHTIG:
# - Nur Tags mit dem Suffix "-edge" loesen diesen Workflow aus - die normale (Qt-)Playtube
# baut aus dem Branch "main" mit Tags "vX.Y.Z" und bleibt davon unberuehrt.
# - Das Release wird als VORABVERSION veroeffentlicht und nie als "latest" markiert. Die Qt-
# Version fragt "/releases/latest" ab und sieht dieses Release dadurch nie; der Updater der
# Edge-Version sucht seinerseits nur nach Tags "...-edge" (siehe playtube/updater.py).
on:
push:
tags:
- "v*-edge"
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: PlaytubeEdge.exe bauen
run: pyinstaller packaging\playtube.spec --noconfirm --distpath dist --workpath build
- name: Setup-Installer bauen (Inno Setup)
shell: pwsh
run: |
$version = (Select-String -Path playtube\__init__.py -Pattern '__version__\s*=\s*"([^"]+)"').Matches[0].Groups[1].Value
$iscc = Join-Path ${env:ProgramFiles(x86)} "Inno Setup 6\ISCC.exe"
if (-not (Test-Path $iscc)) {
choco install innosetup -y --no-progress
}
& $iscc "/DAppVersion=$version" packaging\playtube.iss
if ($LASTEXITCODE -ne 0) { throw "Inno-Setup-Build fehlgeschlagen." }
# Zwei getrennte Artefakte: bei mehreren Pfaden in EINEM Artefakt behielte das Setup seinen
# Unterordner (dist/installer/) und wuerde beim Veroeffentlichen nicht gefunden.
- uses: actions/upload-artifact@v4
with:
name: windows-edge-setup
path: dist/installer/PlaytubeEdge-Setup-v*.exe
- name: Als .zip packen (portabel)
run: Compress-Archive -Path dist\PlaytubeEdge -DestinationPath PlaytubeEdge-${{ github.ref_name }}-win64.zip
- uses: actions/upload-artifact@v4
with:
name: windows-edge-zip
path: PlaytubeEdge-*-win64.zip
publish-release:
needs: [build-windows]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
path: artifacts
merge-multiple: true
- name: GitHub Release veroeffentlichen (Vorabversion, nie "latest")
# gh statt softprops/action-gh-release: letzteres brach beim erneuten Veroeffentlichen
# desselben Tags mit "Too many retries" ab. Ein vorhandenes Release zum selben Tag wird
# zuerst entfernt (der Tag bleibt), dann sauber neu angelegt.
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release delete "${{ github.ref_name }}" --repo "${{ github.repository }}" --yes || true
gh release create "${{ github.ref_name }}" artifacts/* \
--repo "${{ github.repository }}" \
--title "Playtube Edge ${{ github.ref_name }}" \
--notes-file packaging/release_notes.md \
--prerelease --latest=false --verify-tag