From bba4ac0086dfb5d2c5c2b4f2a826a65d4d5fe936 Mon Sep 17 00:00:00 2001 From: Jens Reinemann Date: Sun, 17 May 2026 15:39:12 +0200 Subject: [PATCH] fix: publish-apk.ps1 PowerShell 5.1 Kompatibilitaet - En-Dash durch Hyphen ersetzt (UTF-8 Encoding-Problem) - SSH-Befehle: && durch ; ersetzt (PS 5.1 kennt kein &&) - 2>/dev/null aus PS-Parsing entfernt (String-Konkatenation) - SSH-Array-Rueckgabe korrekt behandeln (letztes Element) --- .github/skills/publish/publish-apk.ps1 | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/.github/skills/publish/publish-apk.ps1 b/.github/skills/publish/publish-apk.ps1 index 2ab37d2..6f070a8 100644 --- a/.github/skills/publish/publish-apk.ps1 +++ b/.github/skills/publish/publish-apk.ps1 @@ -28,7 +28,7 @@ $RemoteDir = "/opt/krisenvorrat" Write-Host "=== Publish APK v$VersionName (build $VersionCode) ===" -ForegroundColor Cyan if (-not (Test-Path $ApkPath)) { - Write-Error "APK nicht gefunden: $ApkPath – bitte zuerst './gradlew assembleDebug' ausfuehren." + Write-Error "APK nicht gefunden: $ApkPath - bitte zuerst './gradlew assembleDebug' ausfuehren." exit 1 } @@ -50,23 +50,28 @@ Write-Host "[OK] APK hochgeladen" -ForegroundColor Green # --- Schritt 2: Version in docker-compose.yml aktualisieren --- Write-Host "`n[2/4] Version in docker-compose.yml aktualisieren..." -ForegroundColor Yellow -# Prüfen ob Env-Vars bereits vorhanden sind -$hasVersionCode = ssh $VPS "grep -c 'KRISENVORRAT_APP_VERSION_CODE' $RemoteDir/docker-compose.yml 2>/dev/null || echo 0" -$hasVersionCode = [int]$hasVersionCode.Trim() +# Prüfen ob Env-Vars bereits vorhanden sind (bash-Syntax in einfachen Anführungszeichen) +$checkCmd = 'grep -c "KRISENVORRAT_APP_VERSION_CODE" ' + $RemoteDir + '/docker-compose.yml 2>/dev/null || echo 0' +$checkResult = ssh $VPS $checkCmd +# SSH kann Array zurückgeben (z.B. Banner + Ergebnis) - letzte Zeile nehmen +if ($checkResult -is [array]) { $checkResult = $checkResult[-1] } +$hasVersionCode = [int]($checkResult.Trim()) if ($hasVersionCode -gt 0) { # Update bestehende Einträge - ssh $VPS "cd $RemoteDir && sed -i 's/KRISENVORRAT_APP_VERSION_CODE=.*/KRISENVORRAT_APP_VERSION_CODE=$VersionCode/' docker-compose.yml && sed -i 's/KRISENVORRAT_APP_VERSION_NAME=.*/KRISENVORRAT_APP_VERSION_NAME=$VersionName/' docker-compose.yml" + $sedCmd = "cd $RemoteDir; sed -i 's/KRISENVORRAT_APP_VERSION_CODE=.*/KRISENVORRAT_APP_VERSION_CODE=$VersionCode/' docker-compose.yml; sed -i 's/KRISENVORRAT_APP_VERSION_NAME=.*/KRISENVORRAT_APP_VERSION_NAME=$VersionName/' docker-compose.yml" + ssh $VPS $sedCmd } else { # Erstmalig hinzufügen (nach JWT_SECRET-Zeile) - ssh $VPS "cd $RemoteDir && sed -i '/KRISENVORRAT_JWT_SECRET/a\ - KRISENVORRAT_APP_VERSION_CODE=$VersionCode\n - KRISENVORRAT_APP_VERSION_NAME=$VersionName' docker-compose.yml" + $addCmd = "cd $RemoteDir; sed -i '/KRISENVORRAT_JWT_SECRET/a\ - KRISENVORRAT_APP_VERSION_CODE=$VersionCode' docker-compose.yml; sed -i '/KRISENVORRAT_APP_VERSION_CODE/a\ - KRISENVORRAT_APP_VERSION_NAME=$VersionName' docker-compose.yml" + ssh $VPS $addCmd } if ($LASTEXITCODE -ne 0) { Write-Error "Version-Update fehlgeschlagen."; exit 1 } Write-Host "[OK] Version gesetzt: $VersionName (build $VersionCode)" -ForegroundColor Green # --- Schritt 3: Server neustarten --- Write-Host "`n[3/4] Server-Container neustarten..." -ForegroundColor Yellow -ssh $VPS "cd $RemoteDir && docker compose up -d" +ssh $VPS "cd $RemoteDir; docker compose up -d" if ($LASTEXITCODE -ne 0) { Write-Error "Container-Neustart fehlgeschlagen."; exit 1 } Write-Host "[OK] Container neu gestartet" -ForegroundColor Green @@ -83,9 +88,9 @@ if ($SkipVerify) { if ($versionJson.versionCode -eq $VersionCode -and $versionJson.versionName -eq $VersionName) { Write-Host "[OK] Server meldet Version $($versionJson.versionName) (build $($versionJson.versionCode))" -ForegroundColor Green - Write-Host " APK-URL: $($versionJson.apkUrl)" -ForegroundColor DarkGray + Write-Host (" APK-URL: " + $versionJson.apkUrl) -ForegroundColor DarkGray } else { - Write-Warning "Server meldet unerwartete Version: $($versionJson | ConvertTo-Json -Compress)" + Write-Warning ("Server meldet unerwartete Version: " + ($versionJson | ConvertTo-Json -Compress)) } } catch { Write-Warning "Verifizierung fehlgeschlagen: $_"