Skip to content

Commit 72ade43

Browse files
committed
Reuse same branch name for previews of a PR
1 parent d5b8343 commit 72ade43

3 files changed

Lines changed: 48 additions & 17 deletions

File tree

eng/common/scripts/Submit-PullRequest.ps1

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,9 @@ param(
7171

7272
[boolean]$CloseAfterOpenForTesting=$false,
7373

74-
[boolean]$OpenAsDraft=$false
74+
[boolean]$OpenAsDraft=$false,
75+
76+
[boolean]$AddBuildSummary=$true
7577
)
7678

7779
. (Join-Path $PSScriptRoot common.ps1)
@@ -106,33 +108,42 @@ else {
106108
-AuthToken $AuthToken
107109

108110
$resp | Write-Verbose
109-
LogDebug "Pull request created https://github.com/$RepoOwner/$RepoName/pull/$($resp.number)"
111+
$prNumber = $resp.number
112+
LogDebug "Pull request created https://github.com/$RepoOwner/$RepoName/pull/$prNumber"
110113

111114
$prOwnerUser = $resp.user.login
112115

113116
# setting variable to reference the pull request by number
114-
Write-Host "##vso[task.setvariable variable=Submitted.PullRequest.Number]$($resp.number)"
117+
Write-Host "##vso[task.setvariable variable=Submitted.PullRequest.Number]$prNumber"
115118

116119
# ensure that the user that was used to create the PR is not attempted to add as a reviewer
117120
# we cast to an array to ensure that length-1 arrays actually stay as array values
118121
$cleanedUsers = @(SplitParameterArray -members $UserReviewers) | ? { $_ -ne $prOwnerUser -and $null -ne $_ }
119122
$cleanedTeamReviewers = @(SplitParameterArray -members $TeamReviewers) | ? { $_ -ne $prOwnerUser -and $null -ne $_ }
120123

121124
if ($cleanedUsers -or $cleanedTeamReviewers) {
122-
Add-GitHubPullRequestReviewers -RepoOwner $RepoOwner -RepoName $RepoName -PrNumber $resp.number `
125+
Add-GitHubPullRequestReviewers -RepoOwner $RepoOwner -RepoName $RepoName -PrNumber $prNumber `
123126
-Users $cleanedUsers -Teams $cleanedTeamReviewers -AuthToken $AuthToken
124127
}
125128

126129
if ($CloseAfterOpenForTesting) {
127130
$prState = "closed"
128-
LogDebug "Updating https://github.com/$RepoOwner/$RepoName/pull/$($resp.number) state to closed because this was only testing."
131+
LogDebug "Updating https://github.com/$RepoOwner/$RepoName/pull/$prNumber state to closed because this was only testing."
129132
}
130133
else {
131134
$prState = "open"
132135
}
133136

134137
Update-GitHubIssue -RepoOwner $RepoOwner -RepoName $RepoName -IssueNumber $resp.number `
135138
-State $prState -Labels $PRLabels -Assignees $Assignees -AuthToken $AuthToken
139+
140+
if ($AddBuildSummary) {
141+
$summaryPath = "$(System.DefaultWorkingDirectory)/summary.md"
142+
$summaryMarkdown = "**PR:** [Azure/$RepoName#$prNumber](https://github.com/Azure/$RepoName/pull/$prNumber)"
143+
$summaryMarkdown += "`n**Title:** $PRTitle"
144+
$summaryMarkdown | Out-File $summaryPath
145+
Write-Host "##vso[task.addattachment type=Distributedtask.Core.Summary;name=Pull Request Created;]$summaryPath"
146+
}
136147
}
137148
catch {
138149
LogError "Call to GitHub API failed with exception:`n$_"

eng/pipelines/branch-cleanup.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ jobs:
109109
arguments: >
110110
-RepoId "${{ repo }}"
111111
-BranchRegex "^(increment-package-version-|fluent-lite-generation-|auto-update-|version-increment-build-|post-release-automation-|restapi_auto_|t2-).*$"
112+
-LastCommitOlderThan ((Get-Date).AddDays(-1))
112113
-AuthToken $(azuresdk-github-pat)
113114
-WhatIf:$${{parameters.WhatIfPreference}}
114115

eng/pipelines/templates/stages/archetype-autorest-preview.yml

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -136,9 +136,26 @@ stages:
136136
artifactPath: $(Build.ArtifactStagingDirectory)
137137

138138
- pwsh: |
139-
$branchName = 'autorest-failed-build-$(Build.BuildId)'
140-
$repositoryName = '$(repositories.self.name)'
139+
$sourceBranch = '$(Build.SourceBranch)'
140+
$buildReason = '$(Build.Reason)'
141+
$buildNumber = '$(Build.BuildNumber)'
142+
143+
if ($buildReason -eq 'Schedule') {
144+
$branchName = 'auto-update-autorest-scheduled'
145+
} elseif ($sourceBranch -match "^refs/pull/(\d+)/(head|merge)$") {
146+
$branchName = "auto-update-autorest-pr-$($Matches[1])"
147+
} else {
148+
$branchName = "auto-update-autorest-$buildNumber"
149+
}
150+
151+
Write-Host "Setting variable 'branchName' to '$branchName'"
152+
Write-Host "##vso[task.setvariable variable=branchName;isOutput=true]$branchName"
153+
displayName: Set branch name
154+
name: set_branch_name
141155
156+
- pwsh: |
157+
$repositoryName = '$(repositories.self.name)'
158+
$branchName = '$(set_branch_name.branchName)'
142159
. $(toolsRepositoryPath)/eng/common/scripts/git-branch-push.ps1 `
143160
-PRBranchName $branchName `
144161
-CommitMsg 'Update repo on failing build`n`nBuild url: $(System.CollectionUri)_build/results?buildId=$(Build.BuildId)' `
@@ -293,10 +310,7 @@ stages:
293310
sdkRepositoryCommitSha: $[stageDependencies.Build.Build.outputs['repositories.sdk-repository.version']]
294311
buildArtifactsPath: $(Pipeline.Workspace)/build_artifacts
295312
publishArtifactsPath: $(Pipeline.Workspace)/publish_artifacts
296-
${{ if eq(variables['Build.Reason'], 'Schedule') }}:
297-
branchName: auto-update-autorest-scheduled
298-
${{ else }}:
299-
branchName: auto-update-autorest-$(Build.BuildNumber)
313+
branchName: $[stageDependencies.Build.Build.outputs['set_branch_name.branchName']]
300314
jobs:
301315
- job: Initialize
302316
steps:
@@ -421,21 +435,26 @@ stages:
421435
- pwsh: |
422436
$generateJobResult = '$(generateJobResult)'
423437
$generatorVersion = '$(generatorVersion)'
438+
$collectionUri = '$(System.CollectionUri)'
439+
$project = '$(System.TeamProject)'
440+
$definitionName = '$(Build.DefinitionName)'
424441
$repoUrl = '$(Build.Repository.Uri)'
425442
$sourceBranch = '$(Build.SourceBranch)'
426-
$buildNumber = '$(Build.SourceBranch)'
427-
$queuedBy = '$(Build.SourceBranch)'
428443
$reason = '$(Build.Reason)'
444+
$buildId = '$(Build.BuildId)'
445+
$buildNumber = '$(Build.BuildNumber)'
429446
$preRelease = '${{ parameters.BuildPrereleaseVersion }}' -eq 'true'
447+
448+
$prBody = "Generated by $definitionName build [$buildNumber]($collectionUri/$project/_build/results?buildId=$buildId)<br/>"
430449
431450
if ($sourceBranch -match "^refs/heads/(.+)$") {
432-
$prBody = "Triggered from branch: [$($Matches[1])]($repoUrl/tree/$sourceBranch)"
451+
$prBody += "Triggered from branch: [$($Matches[1])]($repoUrl/tree/$sourceBranch)"
433452
} elseif ($sourceBranch -match "^refs/tags/(.+)$") {
434-
$prBody = "Triggered from tag: [$($Matches[1])]($repoUrl/tree/$sourceBranch)"
453+
$prBody += "Triggered from tag: [$($Matches[1])]($repoUrl/tree/$sourceBranch)"
435454
} elseif ($sourceBranch -match "^refs/pull/(\d+)/(head|merge)$") {
436-
$prBody = "Triggered from pull request: $repoUrl/pull/$($Matches[1])"
455+
$prBody += "Triggered from pull request: $repoUrl/pull/$($Matches[1])"
437456
} else {
438-
$prBody = "Triggered from [$sourceBranch]($repoUrl/tree/$sourceBranch)"
457+
$prBody += "Triggered from [$sourceBranch]($repoUrl/tree/$sourceBranch)"
439458
}
440459
441460
if ($reason -eq 'Schedule') {

0 commit comments

Comments
 (0)