/
Alex_Ural
/
opencode
Обзор
Документация
Войти
/
Alex_Ural
/
opencode
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
script/sign-windows.ps1
70 строк
2 KB
Luke Parker
feat(ci): use Azure Artifact Signing for Windows releases (#15201)
28 мар 2026, 04:20
Не верифицирован
28 мар 2026, 04:20
82fc493
Код
Авторство
О чём код?
param( [Parameter(ValueFromRemainingArguments = $true)] [string[]] $Path ) $ErrorActionPreference = "Stop" if (-not $Path -or $Path.Count -eq 0) { throw "At least one path is required" } if ($env:GITHUB_ACTIONS -ne "true") { Write-Host "Skipping Windows signing because this is not running on GitHub Actions" exit 0 } $vars = @{ endpoint = $env:AZURE_TRUSTED_SIGNING_ENDPOINT account = $env:AZURE_TRUSTED_SIGNING_ACCOUNT_NAME profile = $env:AZURE_TRUSTED_SIGNING_CERTIFICATE_PROFILE } if ($vars.Values | Where-Object { -not $_ }) { Write-Host "Skipping Windows signing because Azure Artifact Signing is not configured" exit 0 } $moduleVersion = "0.5.8" $module = Get-Module -ListAvailable -Name TrustedSigning | Where-Object { $_.Version -eq [version] $moduleVersion } if (-not $module) { try { Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force -Scope CurrentUser | Out-Null } catch { Write-Host "NuGet package provider install skipped: $($_.Exception.Message)" } Install-Module -Name TrustedSigning -RequiredVersion $moduleVersion -Force -Repository PSGallery -Scope CurrentUser } Import-Module TrustedSigning -RequiredVersion $moduleVersion -Force $files = @($Path | ForEach-Object { Resolve-Path $_ -ErrorAction SilentlyContinue } | Select-Object -ExpandProperty Path -Unique) if (-not $files -or $files.Count -eq 0) { throw "No files matched the requested paths" } $params = @{ Endpoint = $vars.endpoint CodeSigningAccountName = $vars.account CertificateProfileName = $vars.profile Files = ($files -join ",") FileDigest = "SHA256" TimestampDigest = "SHA256" TimestampRfc3161 = "http://timestamp.acs.microsoft.com" ExcludeEnvironmentCredential = $true ExcludeWorkloadIdentityCredential = $true ExcludeManagedIdentityCredential = $true ExcludeSharedTokenCacheCredential = $true ExcludeVisualStudioCredential = $true ExcludeVisualStudioCodeCredential = $true ExcludeAzureCliCredential = $false ExcludeAzurePowerShellCredential = $true ExcludeAzureDeveloperCliCredential = $true ExcludeInteractiveBrowserCredential = $true } Invoke-TrustedSigning @params