Files
aza/AzA march 2026/publish_update.ps1

79 lines
2.9 KiB
PowerShell
Raw Normal View History

2026-05-28 18:58:38 +02:00
# publish_update.ps1 - Upload Installer + Manifest nach Hetzner
# Laedt in release/ UND release/downloads/ hoch (beide Pfade).
2026-04-16 13:32:32 +02:00
$ErrorActionPreference = "Stop"
$projectRoot = $PSScriptRoot
$remoteHost = "root@178.104.51.177"
$remotePath = "/root/aza-app/release"
2026-05-28 18:58:38 +02:00
$remoteDownloadsPath = "/root/aza-app/release/downloads"
2026-04-16 13:32:32 +02:00
$installerPath = Join-Path $projectRoot "dist\installer\aza_desktop_setup.exe"
$manifestPath = Join-Path $projectRoot "release\version.json"
Write-Host ""
# --- [1/4] ---
Write-Host "[1/4] Lokale Dateien pruefen..."
if (-not (Test-Path $installerPath)) {
Write-Error "ABBRUCH: $installerPath nicht gefunden."
exit 1
}
$sizeMB = [math]::Round((Get-Item $installerPath).Length / 1MB, 2)
Write-Host " Installer OK ($sizeMB MB)"
if (-not (Test-Path $manifestPath)) {
Write-Error "ABBRUCH: $manifestPath nicht gefunden."
exit 1
}
Write-Host " version.json OK"
# --- [2/4] ---
2026-05-28 18:58:38 +02:00
Write-Host "[2/4] Installer hochladen (release/ und release/downloads/)..."
2026-04-16 13:32:32 +02:00
scp "$installerPath" "${remoteHost}:${remotePath}/aza_desktop_setup.exe"
if ($LASTEXITCODE -ne 0) {
Write-Error "ABBRUCH: Installer-Upload fehlgeschlagen."
exit 1
}
2026-05-28 18:58:38 +02:00
Write-Host " release/ OK"
# In den oeffentlichen Downloads-Ordner kopieren
# (https://api.aza-medwork.ch/downloads/aza_desktop_setup.exe)
ssh $remoteHost "cp ${remotePath}/aza_desktop_setup.exe ${remoteDownloadsPath}/aza_desktop_setup.exe"
if ($LASTEXITCODE -ne 0) {
Write-Warning "Warnung: Kopieren in downloads/ fehlgeschlagen."
} else {
Write-Host " release/downloads/ OK"
}
2026-04-16 13:32:32 +02:00
# --- [3/4] ---
Write-Host "[3/4] Manifest hochladen..."
scp "$manifestPath" "${remoteHost}:${remotePath}/version.json"
if ($LASTEXITCODE -ne 0) {
Write-Error "ABBRUCH: Manifest-Upload fehlgeschlagen."
exit 1
}
2026-05-28 18:58:38 +02:00
Write-Host " version.json OK"
2026-04-16 13:32:32 +02:00
# --- [4/4] ---
2026-05-28 18:58:38 +02:00
Write-Host "[4/4] Remote-Verifizierung (Groesse + SHA256-Abgleich)..."
ssh $remoteHost "ls -lh ${remotePath}/aza_desktop_setup.exe && ls -lh ${remoteDownloadsPath}/aza_desktop_setup.exe && ls -lh ${remotePath}/version.json"
Write-Host ""
Write-Host " SHA256-Vergleich (release/ vs. downloads/)..."
$hashOutput = ssh $remoteHost "sha256sum ${remotePath}/aza_desktop_setup.exe ${remoteDownloadsPath}/aza_desktop_setup.exe 2>/dev/null"
Write-Host $hashOutput
$hashes = $hashOutput -split "`n" | Where-Object { $_ -match "^[0-9a-f]{64}" } | ForEach-Object { ($_ -split "\s+")[0] }
if ($hashes.Count -eq 2 -and $hashes[0] -eq $hashes[1]) {
Write-Host " SHA256 identisch: beide Pfade OK." -ForegroundColor Green
} elseif ($hashes.Count -lt 2) {
Write-Warning " SHA256 konnte nicht verglichen werden (Dateien fehlen?)."
} else {
Write-Error "WARNUNG: SHA256 der oeffentlichen URL weicht ab! release/downloads/ wurde moeglicherweise nicht aktualisiert."
}
Write-Host ""
ssh $remoteHost "curl -sI https://api.aza-medwork.ch/downloads/aza_desktop_setup.exe | head -4"
2026-04-16 13:32:32 +02:00
Write-Host ""
Write-Host "UPLOAD FERTIG"
Write-Host ""