Files
aza/AzA march 2026 - Kopie (16)/build_release_manifest.ps1
2026-04-19 20:41:37 +02:00

67 lines
2.1 KiB
PowerShell

$projectRoot = $PSScriptRoot
$azaVersionPy = Join-Path $projectRoot "aza_version.py"
$manifestPath = Join-Path $projectRoot "release\version.json"
$releaseBaseUrl = $env:AZA_RELEASE_BASE_URL
if (-not (Test-Path $azaVersionPy)) {
Write-Error "aza_version.py nicht gefunden: $azaVersionPy"
exit 1
}
Write-Host "Erzeuge release/version.json aus aza_version.py..."
$versionContent = Get-Content $azaVersionPy -Raw
if ($versionContent -match 'APP_VERSION\s*=\s*"([^"]+)"') {
$appVersion = $matches[1].Trim()
} else {
Write-Error "APP_VERSION nicht in aza_version.py gefunden."
exit 1
}
if ($versionContent -match 'APP_CHANNEL\s*=\s*"([^"]+)"') {
$appChannel = $matches[1].Trim()
} else {
Write-Error "APP_CHANNEL nicht in aza_version.py gefunden."
exit 1
}
$manifest = @{}
if (Test-Path $manifestPath) {
$manifest = Get-Content $manifestPath -Raw | ConvertFrom-Json
}
$releaseDate = if ($manifest.release_date) { $manifest.release_date } else { (Get-Date).ToString("yyyy-MM-dd") }
$minVersion = if ($manifest.minimum_supported_version) { $manifest.minimum_supported_version } else { $appVersion }
$downloadUrl = if ($releaseBaseUrl) {
"$releaseBaseUrl/aza_desktop_setup.exe"
} elseif ($manifest.download_url) {
$manifest.download_url
} else {
"https://api.aza-medwork.ch/download/aza_desktop_setup.exe"
}
$installerType = if ($manifest.installer_type) { $manifest.installer_type } else { "inno-setup" }
$releaseNotes = if ($manifest.release_notes) { $manifest.release_notes } else { @("Desktop-Build aktualisiert") }
$newManifest = [ordered]@{
version = $appVersion
channel = $appChannel
release_date = $releaseDate
minimum_supported_version = $minVersion
download_url = $downloadUrl
installer_type = $installerType
release_notes = $releaseNotes
}
$newManifest | ConvertTo-Json -Depth 5 | Set-Content $manifestPath -Encoding UTF8
if (-not $appVersion) {
Write-Error "release/version.json konnte nicht erzeugt werden."
exit 1
}
Write-Host "release/version.json aktualisiert."
Write-Host "Version: $appVersion"
if ($releaseBaseUrl) {
Write-Host "Download-URL Base: $releaseBaseUrl"
}