34 lines
1.6 KiB
PowerShell
34 lines
1.6 KiB
PowerShell
$tempCertFile = New-TemporaryFile
|
|
|
|
# Retrieve environment variables for cert/password.
|
|
$certText = $env:windowsCert
|
|
$CertPass = $env:windowsCertPassword
|
|
|
|
# Create a Cert object by converting the cert string to bytes.
|
|
$finalFileName = $tempCertFile.FullName
|
|
$certBytes = [Convert]::FromBase64String($certText)
|
|
[System.IO.File]::WriteAllBytes($finalFileName, $certBytes)
|
|
$CertPath = $finalFileName
|
|
$Cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($CertPath, $CertPass)
|
|
|
|
# Update the version of Compress-Archive to support zipping correctly.
|
|
Install-Module Microsoft.PowerShell.Archive -MinimumVersion 1.2.3.0 -Repository PSGallery -Force
|
|
Import-Module Microsoft.PowerShell.Archive
|
|
|
|
# Go through the artifacts directory and sign the 'windows' artifacts.
|
|
$artifactDirectory = "./build/dist"
|
|
$extractDirectory = $artifactDirectory + "/" + "extracted"
|
|
foreach ($file in get-ChildItem $artifactDirectory | where {$_.name -like "*windows*"} | select name)
|
|
{
|
|
$artifact = $artifactDirectory + "/" + $file.Name
|
|
Expand-Archive -LiteralPath $artifact -DestinationPath $extractDirectory -Force
|
|
|
|
$subDirectoryPath = $extractDirectory + "/" + (Get-ChildItem -Path $extractDirectory | Select-Object -First 1).Name
|
|
$telegrafExePath = $subDirectoryPath + "/" + "telegraf.exe"
|
|
Set-AuthenticodeSignature -Certificate $Cert -FilePath $telegrafExePath -TimestampServer http://timestamp.digicert.com
|
|
Compress-Archive -Path $subDirectoryPath -DestinationPath $artifact -Force
|
|
Remove-Item $extractDirectory -Force -Recurse
|
|
}
|
|
|
|
Remove-Item $finalFileName -Force
|