mirror of https://github.com/pulumi/pulumi.git
83 lines
2.5 KiB
PowerShell
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"
|