From 4323a2b7fcb1b7c93cbb0c94cbfe89424cbc423a Mon Sep 17 00:00:00 2001 From: Chidozie Ononiwu Date: Thu, 1 Oct 2020 21:14:48 -0700 Subject: [PATCH] Write info about queued pipelines back to the tools PR --- .../templates/steps/create-pull-request.yml | 2 +- eng/common/scripts/Add-Issue-Comment.ps1 | 53 +++++++++++++++++++ eng/common/scripts/Queue-Pipeline.ps1 | 18 ++++++- eng/common/scripts/Submit-PullRequest.ps1 | 2 +- 4 files changed, 71 insertions(+), 4 deletions(-) create mode 100644 eng/common/scripts/Add-Issue-Comment.ps1 diff --git a/eng/common/pipelines/templates/steps/create-pull-request.yml b/eng/common/pipelines/templates/steps/create-pull-request.yml index 06ebe8e62e97..e3b3e538c036 100644 --- a/eng/common/pipelines/templates/steps/create-pull-request.yml +++ b/eng/common/pipelines/templates/steps/create-pull-request.yml @@ -62,7 +62,7 @@ steps: -CommitMsg "${{ parameters.CommitMsg }}" -GitUrl "https://$(azuresdk-github-pat)@github.com/${{ parameters.PROwner }}/$(RepoNameWithoutOwner).git" -PushArgs "${{ parameters.PushArgs }}" - -SkipCommit $"${{parameters.SkipCheckingForChanges}}" + -SkipCommit $${{parameters.SkipCheckingForChanges}} - task: PowerShell@2 displayName: Create pull request diff --git a/eng/common/scripts/Add-Issue-Comment.ps1 b/eng/common/scripts/Add-Issue-Comment.ps1 new file mode 100644 index 000000000000..5ecfb894caac --- /dev/null +++ b/eng/common/scripts/Add-Issue-Comment.ps1 @@ -0,0 +1,53 @@ +[CmdletBinding(SupportsShouldProcess = $true)] +param( + [Parameter(Mandatory = $true)] + [string]$RepoOwner, + + [Parameter(Mandatory = $true)] + [string]$RepoName, + + [Parameter(Mandatory = $true)] + [string]$IssueNumber, + + [Parameter(Mandatory = $false)] + [string]$CommentPrefix, + + [Parameter(Mandatory = $true)] + [string]$Comment, + + [Parameter(Mandatory = $false)] + [string]$CommentPostFix, + + [Parameter(Mandatory = $true)] + [string]$AuthToken +) + +. "${PSScriptRoot}\logging.ps1" + +$headers = @{ + Authorization = "bearer $AuthToken" +} + +$apiUrl = "https://api.github.com/repos/$RepoOwner/$RepoName/issues/$IssueNumber/comments" + +$commentPrefixValue = [System.Environment]::GetEnvironmentVariable($CommentPrefix) +$commentValue = [System.Environment]::GetEnvironmentVariable($Comment) +$commentPostFixValue = [System.Environment]::GetEnvironmentVariable($CommentPostFix) + +if (!$commentPrefixValue) { $commentPrefixValue = $CommentPrefix } +if (!$commentValue) { $commentValue = $Comment } +if (!$commentPostFixValue) { $commentPostFixValue = $CommentPostFix } + +$PRComment = "$commentPrefixValue
$commentValue
$commentPostFixValue" + +$data = @{ + body = $PRComment +} + +try { + $resp = Invoke-RestMethod -Method POST -Headers $headers -Uri $apiUrl -Body ($data | ConvertTo-Json) +} +catch { + LogError "Invoke-RestMethod [ $apiUrl ] failed with exception:`n$_" + exit 1 +} \ No newline at end of file diff --git a/eng/common/scripts/Queue-Pipeline.ps1 b/eng/common/scripts/Queue-Pipeline.ps1 index 626879b00b4f..4e0122ca9256 100644 --- a/eng/common/scripts/Queue-Pipeline.ps1 +++ b/eng/common/scripts/Queue-Pipeline.ps1 @@ -12,6 +12,9 @@ param( [Parameter(Mandatory = $true)] [int]$DefinitionId, + [Parameter(Mandatory = $false)] + [string]$VsoQueuedPipelines, + [Parameter(Mandatory = $true)] [string]$AuthToken ) @@ -35,8 +38,19 @@ try { $resp = Invoke-RestMethod -Method POST -Headers $headers $apiUrl -Body ($body | ConvertTo-Json) -ContentType application/json } catch { - LogError "Invoke-RestMethod $apiUrl failed with exception:`n$_" + LogError "Invoke-RestMethod [ $apiUrl ] failed with exception:`n$_" exit 1 } -LogDebug "Pipeline [ $($resp.definition.name) ] queued at [ $($resp._links.web.href) ]" \ No newline at end of file +LogDebug "Pipeline [ $($resp.definition.name) ] queued at [ $($resp._links.web.href) ]" + +if ($VsoQueuedPipelines) { + $enVarValue = [System.Environment]::GetEnvironmentVariable($VsoQueuedPipelines) + $QueuedPipelineLinks = if ($enVarValue) { + "$enVarValue
[$($resp.definition.name)]($($resp._links.web.href))" + }else { + "[$($resp.definition.name)]($($resp._links.web.href))" + } + $QueuedPipelineLinks + Write-Host "##vso[task.setvariable variable=$VsoQueuedPipelines]$QueuedPipelineLinks" +} \ No newline at end of file diff --git a/eng/common/scripts/Submit-PullRequest.ps1 b/eng/common/scripts/Submit-PullRequest.ps1 index f1867ca714d6..93ca35512c85 100644 --- a/eng/common/scripts/Submit-PullRequest.ps1 +++ b/eng/common/scripts/Submit-PullRequest.ps1 @@ -31,7 +31,7 @@ param( [string]$RepoName, [Parameter(Mandatory = $true)] - [string]$BaseBranch = "master", + [string]$BaseBranch, [Parameter(Mandatory = $true)] [string]$PROwner,