Initial commit
This commit is contained in:
81
backup 24.2.26 - Kopie (61)/build_release_artifacts.ps1
Normal file
81
backup 24.2.26 - Kopie (61)/build_release_artifacts.ps1
Normal file
@@ -0,0 +1,81 @@
|
||||
$projectRoot = $PSScriptRoot
|
||||
$desktopExe = Join-Path $projectRoot "dist\aza_desktop\aza_desktop.exe"
|
||||
$installerExe = Join-Path $projectRoot "dist\installer\aza_desktop_setup.exe"
|
||||
$manifestPath = Join-Path $projectRoot "release\version.json"
|
||||
$reportDir = Join-Path $projectRoot "dist\release_artifacts"
|
||||
$reportPath = Join-Path $reportDir "release_artifacts.json"
|
||||
|
||||
if (-not (Test-Path $desktopExe)) {
|
||||
Write-Error "Desktop-EXE nicht gefunden: $desktopExe"
|
||||
exit 1
|
||||
}
|
||||
|
||||
if (-not (Test-Path $installerExe)) {
|
||||
Write-Error "Installer nicht gefunden: $installerExe"
|
||||
exit 1
|
||||
}
|
||||
|
||||
if (-not (Test-Path $manifestPath)) {
|
||||
Write-Error "Release-Manifest nicht gefunden: $manifestPath"
|
||||
exit 1
|
||||
}
|
||||
|
||||
if (-not (Test-Path $reportDir)) {
|
||||
New-Item -ItemType Directory -Path $reportDir | Out-Null
|
||||
}
|
||||
|
||||
$manifest = Get-Content $manifestPath -Raw | ConvertFrom-Json
|
||||
|
||||
$desktopHash = (Get-FileHash $desktopExe -Algorithm SHA256).Hash
|
||||
$installerHash = (Get-FileHash $installerExe -Algorithm SHA256).Hash
|
||||
|
||||
$desktopItem = Get-Item $desktopExe
|
||||
$installerItem = Get-Item $installerExe
|
||||
|
||||
$desktopSig = Get-AuthenticodeSignature -FilePath $desktopExe -ErrorAction SilentlyContinue
|
||||
$installerSig = Get-AuthenticodeSignature -FilePath $installerExe -ErrorAction SilentlyContinue
|
||||
|
||||
$desktopSignStatus = if ($desktopSig -and $desktopSig.Status -eq "Valid") { "signed" } else { "unsigned" }
|
||||
$installerSignStatus = if ($installerSig -and $installerSig.Status -eq "Valid") { "signed" } else { "unsigned" }
|
||||
$desktopSignSubject = if ($desktopSig -and $desktopSig.SignerCertificate) { $desktopSig.SignerCertificate.Subject } else { $null }
|
||||
$installerSignSubject = if ($installerSig -and $installerSig.SignerCertificate) { $installerSig.SignerCertificate.Subject } else { $null }
|
||||
|
||||
$report = [ordered]@{
|
||||
generated_at = (Get-Date).ToString("yyyy-MM-ddTHH:mm:ss")
|
||||
version = $manifest.version
|
||||
channel = $manifest.channel
|
||||
release_date = $manifest.release_date
|
||||
files = @(
|
||||
[ordered]@{
|
||||
type = "desktop_exe"
|
||||
path = $desktopExe
|
||||
filename = $desktopItem.Name
|
||||
size_bytes = $desktopItem.Length
|
||||
sha256 = $desktopHash
|
||||
signing_status = $desktopSignStatus
|
||||
signing_subject = $desktopSignSubject
|
||||
},
|
||||
[ordered]@{
|
||||
type = "installer"
|
||||
path = $installerExe
|
||||
filename = $installerItem.Name
|
||||
size_bytes = $installerItem.Length
|
||||
sha256 = $installerHash
|
||||
signing_status = $installerSignStatus
|
||||
signing_subject = $installerSignSubject
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
$report | ConvertTo-Json -Depth 5 | Set-Content $reportPath -Encoding UTF8
|
||||
|
||||
Write-Host "Release-Artefakt-Report erstellt:"
|
||||
Write-Host $reportPath
|
||||
Write-Host ""
|
||||
Write-Host "Desktop EXE SHA256:"
|
||||
Write-Host $desktopHash
|
||||
Write-Host "Desktop EXE Signatur: $desktopSignStatus"
|
||||
Write-Host ""
|
||||
Write-Host "Installer SHA256:"
|
||||
Write-Host $installerHash
|
||||
Write-Host "Installer Signatur: $installerSignStatus"
|
||||
Reference in New Issue
Block a user