104 lines
4.2 KiB
YAML
104 lines
4.2 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/download-artifact@v4
|
|
with:
|
|
path: artifacts
|
|
merge-multiple: true
|
|
|
|
- name: GitHub Release veroeffentlichen (Vorabversion)
|
|
uses: softprops/action-gh-release@v2
|
|
with:
|
|
name: Playtube Edge ${{ github.ref_name }}
|
|
files: artifacts/*
|
|
prerelease: true
|
|
make_latest: "false"
|
|
body: |
|
|
## Playtube Edge - die Version fuer eigene (hochgeladene) Musik
|
|
|
|
**Diese Version brauchst du, wenn du selbst hochgeladene Songs in YouTube Music hoeren willst.**
|
|
Die normale Playtube-Version kann sie nicht abspielen ("Dieses Videoformat wird nicht
|
|
unterstuetzt"), weil ihre eingebaute Browser-Engine (QtWebEngine) kein AAC und kein H.264
|
|
kann. Playtube Edge benutzt stattdessen die Microsoft-Edge-Engine (WebView2) - damit
|
|
laufen auch hochgeladene Titel.
|
|
|
|
### Installieren
|
|
- Download: **PlaytubeEdge-Setup-vX.Y.Z.exe** (Setup, empfohlen) oder die ZIP-Datei (portabel).
|
|
- Voraussetzung: Windows 10/11 mit "WebView2 Runtime" (auf Windows 11 schon vorhanden,
|
|
sonst kostenlos bei Microsoft).
|
|
- Playtube Edge laeuft **neben** der normalen Playtube (eigener Ordner, eigene Einstellungen).
|
|
Beim ersten Start musst du dich in YouTube/YouTube Music einmal neu anmelden.
|
|
Lass am besten nur eine der beiden Versionen gleichzeitig spielen.
|
|
- Updates: Playtube Edge aktualisiert sich nur ueber diese "Edge"-Releases - nie ueber die
|
|
normale Playtube.
|
|
|
|
Wer keine eigenen Uploads abspielt, braucht diese Version nicht - die normale Playtube
|
|
reicht dann.
|