pulumi/scripts/build-sdk.ps1
Matt Ellis 9ccd07714a Publish SDK builds to get.pulumi.com
Previously, we published builds to rel.pulumi.com and only put actual
released builds (eg. rc's and final builds) on get.pulumi.com. We
should just publish all of the SDK builds to get.pulumi.com.

This also makes a slight tweak to the filename of the package we
upload (we took the switch over to get.pulumi.com to make this change
and now that we are uploading automatically, we need to encode this
change instead of doing it by hand).
2018-06-12 12:23:05 -06:00

83 lines
2.5 KiB
PowerShell

param (
$VersionTag,
$PulumiRef
)
Set-StrictMode -Version 2.0
$ErrorActionPreference = "Stop"
$S3ProdBucketRoot="s3://get.pulumi.com/releases/"
$S3EngBucketRoot="s3://eng.pulumi.com/releases/"
$S3PublishFolderSdk="${S3ProdBucketRoot}sdk/"
function New-TemporaryDirectory {
New-Item -ItemType Directory -Path (Join-Path ([System.IO.Path]::GetTempPath()) ([System.IO.Path]::GetRandomFileName()))
}
function New-TemporaryFile {
New-Item -ItemType File -Path (Join-Path ([System.IO.Path]::GetTempPath()) ([System.IO.Path]::GetRandomFileName()))
}
function Download-Release ($repoName, $repoCommit, [ValidateSet("zip", "tgz")]$ext) {
Write-Host "downloading $repoName@$repoCommit"
$file="${repoCommit}.${ext}"
$s3File="${S3EngBucketRoot}${repoName}/windows/amd64/${file}"
aws s3 cp --only-show-errors "$s3File" ".\$file"
switch($ext) {
"zip" { 7z x ${file} }
"tgz" { cmd /C "7z x ${file} -tgzip -so | 7z x -ttar -si" }
default { Write-Error "Unknown extention type $ext" }
}
Remove-Item -Force "$file"
}
if (!$VersionTag) { $VersionTag=Get-Date -UFormat '%Y%m%d_%H%M%S' }
if (!$PulumiRef) { $PulumiRef="master" }
$SdkFileName="pulumi-$VersionTag-windows-x64.zip"
$PulumiFolder=(Join-Path (New-TemporaryDirectory) "Pulumi")
New-Item -ItemType Directory -Path $PulumiFolder | Out-Null
Push-Location "$PulumiFolder" | Out-Null
Write-Host "pulumi: $PulumiRef"
Write-Host ""
Download-Release "pulumi" $PulumiRef "zip"
Remove-Item -Recurse -Force -Path "$PulumiFolder\node_modules"
$SdkPackagePath=(Join-Path ([System.IO.Path]::GetTempPath()) $SdkFileName)
if (Test-Path $SdkPackagePath) {
Remove-Item -Force -Path $SdkPackagePath
}
7z a -tzip "$SdkPackagePath" "$(Join-Path (Split-Path -Parent $PulumiFolder) '.')"
Write-Host "uploading SDK to ${S3PublishFolderSdk}${SdkFileName}"
$AWSCreds=((aws sts assume-role `
--role-arn "arn:aws:iam::058607598222:role/UploadPulumiReleases" `
--role-session-name "upload-sdk" `
--external-id "upload-pulumi-release") | ConvertFrom-Json)
$env:AWS_ACCESS_KEY_ID=$AWSCreds.Credentials.AccessKeyId
$env:AWS_SECRET_ACCESS_KEY=$AWSCreds.Credentials.SecretAccessKey
$env:AWS_SECURITY_TOKEN=$AWSCreds.Credentials.SessionToken
aws s3 cp --acl public-read --only-show-errors "$SdkPackagePath" "${S3PublishFolderSdk}${SdkFileName}"
Pop-Location | Out-Null
Remove-Item -Path $SdkPackagePath
Remove-Item -Path (Split-Path -Parent $PulumiFolder) -Force -Recurse
Write-Host "done"