eng/pipelines/scripts/get-tryit-github-comment.ps1 (49 lines of code) (raw):
$root = $env:BUILD_SOURCESDIRECTORY
function Get-ArtifactBaseDownloadUrl() {
$url = "$env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI$env:SYSTEM_TEAMPROJECTID/_apis/build/builds/$env:BUILD_BUILDID/artifacts?artifactName=packages&api-version=5.1"
Write-Host "Getting artifact info at: '$url'"
$buildPipeline= Invoke-RestMethod -Uri $url -Headers @{ Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN" } -Method Get
$ArtifactDownloadURL= $buildPipeline.resource.downloadUrl
return $ArtifactDownloadURL
}
function Get-DownloadUrl([string] $baseDownloadUrl, [string] $filename) {
return $baseDownloadUrl -replace "format=zip","format=file&subPath=%2F$filename";
}
function Create-TinyUrlForArtifact([string] $baseDownloadUrl, [string] $filename, [string]$outVarName) {
$downloadUrl = Get-DownloadUrl -baseDownloadUrl $baseDownloadUrl -filename $filename
Write-Host "Raw Artifact Url: '$downloadUrl'"
$downurl = (iwr "http://tinyurl.com/api-create.php?url=$( [System.Web.HttpUtility]::UrlEncode($downloadUrl))" ).Content
Write-Host "Tiny Url: '$tinyUrl'"
return $downurl;
}
function Get-PackageVersion([string] $packageRoot) {
$version = (Get-Content "$packageRoot/package.json") -join "`n" | ConvertFrom-Json | Select -ExpandProperty "version";
Write-Host "Version for package at $packageRoot is $version"
return $version;
}
function Format-Comment([string] $coreDownloadUrl, [string] $modelerfourDownloadUrl) {
$template = get-content -raw -encoding utf8 "$root/eng/pipelines/resources/tryit-comment-template.md";
$AUTOREST_CORE_DOWNLOAD_URL = $coreDownloadUrl
$AUTOREST_MODELERFOUR_DOWNLOAD_URL = $modelerfourDownloadUrl
return $template `
-replace "{{AUTOREST_CORE_DOWNLOAD_URL}}", $coreDownloadUrl `
-replace "{{AUTOREST_MODELERFOUR_DOWNLOAD_URL}}", $modelerfourDownloadUrl
}
function Run() {
$baseDownloadUrl = Get-ArtifactBaseDownloadUrl
Write-Host "Base download url is $baseDownloadUrl";
$coreVersion = Get-PackageVersion -packageRoot $root/packages/extensions/core
$m4Version = Get-PackageVersion -packageRoot $root/packages/extensions/modelerfour
$coreDownloadUrl = Create-TinyUrlForArtifact -baseDownloadUrl $baseDownloadUrl -filename "autorest-core-$coreVersion.tgz";
$modelerfourDownloadUrl = Create-TinyUrlForArtifact -baseDownloadUrl $baseDownloadUrl -filename "autorest-modelerfour-$m4Version.tgz";
$comment = Format-Comment -coreDownloadUrl $coreDownloadUrl -modelerfourDownloadUrl $modelerfourDownloadUrl
Write-Host "Github comment content:"
Write-Host "-----------------------"
Write-Host $comment
Write-Host "-----------------------"
$escapedComment = $comment -replace "`n", "%0D%0A"
Write-Host "$escapedComment"
Write-Host "======================"
Write-Host "##vso[task.setvariable variable=TRYIT_COMMENT]$escapedComment"
}
Run