diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8d61ce8..517d4c6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -721,7 +721,8 @@ jobs: VERSION: ${{ needs.prepare.outputs.version }} PRIMARY_VERSION: ${{ needs.prepare.outputs.version }} PDCC_primaryVersion: ${{ needs.prepare.outputs.version }} - PDCC_VERSION: ${{ vars.PDC_CLIENT_VERSION }} + PDCC_version: ${{ needs.prepare.outputs.version }} + PDC_CLIENT_VERSION: ${{ vars.PDC_CLIENT_VERSION }} S3_ENDPOINT: ${{ vars.S3_ENDPOINT }} S3_BUCKET: ${{ vars.S3_BUCKET }} S3_REGION: ${{ vars.S3_REGION }} @@ -757,18 +758,44 @@ jobs: run: | $ErrorActionPreference = "Stop" + function Resolve-PgpPrivateKey([string]$value) { + if ([string]::IsNullOrWhiteSpace($value)) { + return $null + } + + $trimmed = $value.Trim() + if ($trimmed -match '-----BEGIN PGP PRIVATE KEY BLOCK-----') { + return $trimmed + } + + try { + $decoded = [System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($trimmed)).Trim() + if ($decoded -match '-----BEGIN PGP PRIVATE KEY BLOCK-----') { + return $decoded + } + } + catch { + } + + return $trimmed + } + if ([string]::IsNullOrWhiteSpace($env:S3_ENDPOINT) -or [string]::IsNullOrWhiteSpace($env:S3_BUCKET)) { throw "Missing required S3 variables." } - if ([string]::IsNullOrWhiteSpace($env:PDC_SIGNING_KEY)) { - if ([string]::IsNullOrWhiteSpace($env:UPDATE_PRIVATE_KEY_PEM)) { - throw "Missing UPDATE_PRIVATE_KEY_PEM or PDC_SIGNING_KEY." - } - - $env:PDC_SIGNING_KEY = $env:UPDATE_PRIVATE_KEY_PEM + $resolvedSigningKey = Resolve-PgpPrivateKey $env:PDC_SIGNING_KEY + if ([string]::IsNullOrWhiteSpace($resolvedSigningKey)) { + $resolvedSigningKey = Resolve-PgpPrivateKey $env:UPDATE_PRIVATE_KEY_PEM } + if ([string]::IsNullOrWhiteSpace($resolvedSigningKey)) { + throw "Missing PDC_SIGNING_KEY (PGP private key)." + } + if ($resolvedSigningKey -notmatch '-----BEGIN PGP PRIVATE KEY BLOCK-----') { + throw "PDC signing key format is invalid. Please provide armored OpenPGP private key in PDC_SIGNING_KEY." + } + Add-Content -Path $env:GITHUB_ENV -Value "PDC_SIGNING_KEY<