Skip to content

Commit e1a2f6e

Browse files
azure-sdksima-zhuweshaggard
authored
Sync eng/common directory with azure-sdk-tools for PR 1477 (Azure#17589)
* Checked in the changes directly. * Address feedback and remove the check of set-default-branch * Fixed base repo branch * Update git-branch-push.ps1 * Fixed the docs-metadata-release * Change the typo * Update eng/common/scripts/git-branch-push.ps1 Co-authored-by: Wes Haggard <[email protected]> * Keep origin format * Update git-branch-push.ps1 * Keep fixing the typo Co-authored-by: Sima Zhu <[email protected]> Co-authored-by: Sima Zhu <[email protected]> Co-authored-by: Wes Haggard <[email protected]>
1 parent 19f9aba commit e1a2f6e

File tree

5 files changed

+111
-94
lines changed

5 files changed

+111
-94
lines changed

eng/common/pipelines/templates/steps/create-pull-request.yml

Lines changed: 11 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -23,49 +23,17 @@ parameters:
2323
OpenAsDraft: false
2424

2525
steps:
26-
27-
- pwsh: |
28-
echo "git add -A"
29-
git add -A
30-
31-
echo "git diff --name-status --cached --exit-code"
32-
git diff --name-status --cached --exit-code
33-
34-
if ($LastExitCode -ne 0) {
35-
echo "##vso[task.setvariable variable=HasChanges]$true"
36-
echo "Changes detected so setting HasChanges=true"
37-
}
38-
else {
39-
echo "##vso[task.setvariable variable=HasChanges]$false"
40-
echo "No changes so skipping code push"
41-
}
42-
displayName: Check for changes
43-
condition: and(succeeded(), eq(${{ parameters.SkipCheckingForChanges }}, false))
44-
workingDirectory: ${{ parameters.WorkingDirectory }}
45-
ignoreLASTEXITCODE: true
46-
47-
- pwsh: |
48-
# Remove the repo owner from the front of the repo name if it exists there
49-
$repoName = "${{ parameters.RepoName }}" -replace "^${{ parameters.RepoOwner }}/", ""
50-
echo "##vso[task.setvariable variable=RepoNameWithoutOwner]$repoName"
51-
echo "RepoName = $repoName"
52-
displayName: Remove Repo Owner from Repo Name
53-
condition: succeeded()
54-
workingDirectory: ${{ parameters.WorkingDirectory }}
55-
56-
- task: PowerShell@2
57-
displayName: Push changes
58-
condition: and(succeeded(), eq(variables['HasChanges'], 'true'))
59-
inputs:
60-
pwsh: true
61-
workingDirectory: ${{ parameters.WorkingDirectory }}
62-
filePath: ${{ parameters.ScriptDirectory }}/git-branch-push.ps1
63-
arguments: >
64-
-PRBranchName "${{ parameters.PRBranchName }}"
65-
-CommitMsg "${{ parameters.CommitMsg }}"
66-
-GitUrl "https://$(azuresdk-github-pat)@github.com/${{ parameters.PROwner }}/$(RepoNameWithoutOwner).git"
67-
-PushArgs "${{ parameters.PushArgs }}"
68-
-SkipCommit $${{ parameters.SkipCheckingForChanges }}
26+
- template: /eng/common/pipelines/templates/steps/git-push-changes.yml
27+
parameters:
28+
BaseRepoBranch: ${{ parameters.PRBranchName }}
29+
BaseRepoOwner: ${{ parameters.PROwner }}
30+
CommitMsg: ${{ parameters.CommitMsg }}
31+
TargetRepoOwner: ${{ parameters.RepoOwner }}
32+
TargetRepoName: ${{ parameters.RepoName }}
33+
PushArgs: ${{ parameters.PushArgs }}
34+
WorkingDirectory: ${{ parameters.WorkingDirectory }}
35+
ScriptDirectory: ${{ parameters.ScriptDirectory }}
36+
SkipCheckingForChanges: ${{ parameters.SkipCheckingForChanges }}
6937

7038
- task: PowerShell@2
7139
displayName: Create pull request

eng/common/pipelines/templates/steps/docs-metadata-release.yml

Lines changed: 14 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ parameters:
99
TargetDocRepoName: ''
1010
TargetDocRepoOwner: ''
1111
PRBranchName: 'master-rdme'
12-
SourceBranchName: 'master'
1312
PRLabels: 'auto-merge'
1413
ArtifactName: ''
1514
Language: ''
@@ -34,18 +33,11 @@ steps:
3433

3534
- pwsh: |
3635
git clone https://github.com/${{ parameters.TargetDocRepoOwner }}/${{ parameters.TargetDocRepoName }} ${{ parameters.WorkingDirectory }}/repo
37-
38-
try {
39-
Push-Location ${{ parameters.WorkingDirectory }}/repo
40-
41-
Write-Host "git checkout ${{ parameters.SourceBranchName }}"
42-
git checkout ${{ parameters.SourceBranchName }}
43-
} finally {
44-
Pop-Location
45-
}
4636
displayName: Clone Documentation Repository
4737
ignoreLASTEXITCODE: false
48-
38+
- template: /eng/common/pipelines/templates/steps/set-default-branch.yml
39+
parameters:
40+
WorkingDirectory: ${{ parameters.WorkingDirectory }}/repo
4941
- task: PowerShell@2
5042
displayName: 'Apply Documentation Updates From Artifact'
5143
inputs:
@@ -82,25 +74,19 @@ steps:
8274
env:
8375
GH_TOKEN: $(azuresdk-github-pat)
8476

85-
- template: /eng/common/pipelines/templates/steps/create-pull-request.yml
77+
- template: /eng/common/pipelines/templates/steps/git-push-changes.yml
8678
parameters:
87-
RepoName: ${{ parameters.TargetDocRepoName }}
88-
RepoOwner: ${{ parameters.TargetDocRepoOwner }}
89-
PRBranchName: ${{ parameters.PRBranchName }}
79+
BaseRepoBranch: $(DefaultBranch)
80+
BaseRepoOwner: ${{ parameters.TargetDocRepoOwner }}
9081
CommitMsg: "Update docs metadata and targeting for release of ${{ parameters.ArtifactName }}"
91-
PRTitle: "Docs.MS Release Updates for ${{ parameters.ArtifactName }}"
92-
BaseBranchName: ${{ parameters.SourceBranchName }}
82+
TargetRepoName: ${{ parameters.TargetDocRepoName }}
83+
TargetRepoOwner: ${{ parameters.TargetDocRepoOwner }}
9384
WorkingDirectory: ${{ parameters.WorkingDirectory }}/repo
9485
ScriptDirectory: ${{ parameters.WorkingDirectory }}/${{ parameters.ScriptDirectory }}
95-
GHReviewersVariable: ${{ parameters.GHReviewersVariable }}
96-
GHTeamReviewersVariable: ${{ parameters.GHTeamReviewersVariable }}
97-
PRLabels: ${{ parameters.PRLabels }}
98-
CloseAfterOpenForTesting: ${{ parameters.CloseAfterOpenForTesting }}
9986

10087
- ${{if ne( parameters['OnboardingBranch'], '')}}:
10188
- pwsh: |
10289
Push-Location ${{ parameters.WorkingDirectory }}/repo
103-
10490
git reset --hard HEAD
10591
git remote rm azure-sdk-fork
10692
git checkout ${{ parameters.OnboardingBranch}}
@@ -123,17 +109,12 @@ steps:
123109
pwsh: true
124110
env:
125111
GH_TOKEN: $(azuresdk-github-pat)
126-
127-
- template: /eng/common/pipelines/templates/steps/create-pull-request.yml
112+
- template: /eng/common/pipelines/templates/steps/git-push-changes.yml
128113
parameters:
129-
RepoName: ${{ parameters.TargetDocRepoName }}
130-
RepoOwner: ${{ parameters.TargetDocRepoOwner }}
131-
PRBranchName: ${{ parameters.PRBranchName }}-ci
132-
CommitMsg: "CI Update for release of ${{ parameters.ArtifactName }}"
133-
PRTitle: "Docs.MS CI Updates for ${{ parameters.ArtifactName }}"
134-
BaseBranchName: ${{ parameters.OnboardingBranch }}
114+
BaseRepoBranch: ${{ parameters.OnboardingBranch}}
115+
BaseRepoOwner: ${{ parameters.TargetDocRepoOwner }}
116+
CommitMsg: "Update docs metadata and targeting for release of ${{ parameters.ArtifactName }}"
117+
TargetRepoName: ${{ parameters.TargetDocRepoName }}
118+
TargetRepoOwner: ${{ parameters.TargetDocRepoOwner }}
135119
WorkingDirectory: ${{ parameters.WorkingDirectory }}/repo
136120
ScriptDirectory: ${{ parameters.WorkingDirectory }}/${{ parameters.ScriptDirectory }}
137-
GHReviewersVariable: ${{ parameters.GHReviewersVariable }}
138-
GHTeamReviewersVariable: ${{ parameters.GHTeamReviewersVariable }}
139-
CloseAfterOpenForTesting: ${{ parameters.CloseAfterOpenForTesting }}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
parameters:
2+
BaseRepoBranch: not-specified
3+
BaseRepoOwner: azure-sdk
4+
CommitMsg: not-specified
5+
TargetRepoOwner: Azure
6+
TargetRepoName: $(Build.Repository.Name)
7+
PushArgs:
8+
WorkingDirectory: $(System.DefaultWorkingDirectory)'
9+
ScriptDirectory: eng/common/scripts
10+
SkipCheckingForChanges: false
11+
12+
steps:
13+
- pwsh: |
14+
echo "git add -A"
15+
git add -A
16+
17+
echo "git diff --name-status --cached --exit-code"
18+
git diff --name-status --cached --exit-code
19+
20+
if ($LastExitCode -ne 0) {
21+
echo "##vso[task.setvariable variable=HasChanges]$true"
22+
echo "Changes detected so setting HasChanges=true"
23+
}
24+
else {
25+
echo "##vso[task.setvariable variable=HasChanges]$false"
26+
echo "No changes so skipping code push"
27+
}
28+
displayName: Check for changes
29+
condition: and(succeeded(), eq(${{ parameters.SkipCheckingForChanges }}, false))
30+
workingDirectory: ${{ parameters.WorkingDirectory }}
31+
ignoreLASTEXITCODE: true
32+
33+
- pwsh: |
34+
# Remove the repo owner from the front of the repo name if it exists there
35+
$repoName = "${{ parameters.TargetRepoName }}" -replace "^${{ parameters.TargetRepoOwner }}/", ""
36+
echo "##vso[task.setvariable variable=RepoNameWithoutOwner]$repoName"
37+
echo "RepoName = $repoName"
38+
displayName: Remove Repo Owner from Repo Name
39+
condition: succeeded()
40+
workingDirectory: ${{ parameters.WorkingDirectory }}
41+
42+
- task: PowerShell@2
43+
displayName: Push changes
44+
condition: and(succeeded(), eq(variables['HasChanges'], 'true'))
45+
inputs:
46+
pwsh: true
47+
workingDirectory: ${{ parameters.WorkingDirectory }}
48+
filePath: ${{ parameters.ScriptDirectory }}/git-branch-push.ps1
49+
arguments: >
50+
-PRBranchName "${{ parameters.BaseRepoBranch }}"
51+
-CommitMsg "${{ parameters.CommitMsg }}"
52+
-GitUrl "https://$(azuresdk-github-pat)@github.com/${{ parameters.BaseRepoOwner }}/$(RepoNameWithoutOwner).git"
53+
-PushArgs "${{ parameters.PushArgs }}"
54+
-SkipCommit $${{ parameters.SkipCheckingForChanges }}

eng/common/pipelines/templates/steps/set-default-branch.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,3 @@ steps:
88
echo "##vso[task.setvariable variable=DefaultBranch]$setDefaultBranch"
99
displayName: "Setup Default Branch"
1010
workingDirectory: ${{ parameters.workingDirectory }}
11-
condition: eq(variables['DefaultBranch'], '')

eng/common/scripts/git-branch-push.ps1

Lines changed: 32 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ param(
2727
[Parameter(Mandatory = $false)]
2828
[string] $PushArgs = "",
2929

30+
[Parameter(Mandatory = $false)]
3031
[string] $RemoteName = "azure-sdk-fork",
3132

3233
[Parameter(Mandatory = $false)]
@@ -41,27 +42,36 @@ param(
4142
# would fail the first time git wrote command output.
4243
$ErrorActionPreference = "Continue"
4344

44-
if (!(git remote | ? {$_ -eq $RemoteName}))
45+
if ((git remote) -contains $RemoteName)
4546
{
46-
Write-Host "git remote add $RemoteName $GitUrl"
47-
git remote add $RemoteName $GitUrl
48-
if ($LASTEXITCODE -ne 0)
49-
{
50-
Write-Error "Unable to add remote LASTEXITCODE=$($LASTEXITCODE), see command output above."
51-
exit $LASTEXITCODE
52-
}
47+
Write-Host "git remote get-url $RemoteName"
48+
$remoteUrl = git remote get-url $RemoteName
49+
if ($remoteUrl -ne $GitUrl)
50+
{
51+
Write-Error "Remote with name $RemoteName already exists with an incompatible url [$remoteUrl] which should be [$GitUrl]."
52+
exit 1
53+
}
5354
}
54-
55-
Write-Host "git fetch $RemoteName"
56-
git fetch $RemoteName
57-
if ($LASTEXITCODE -ne 0)
55+
else
5856
{
59-
Write-Error "Unable to fetch remote LASTEXITCODE=$($LASTEXITCODE), see command output above."
57+
Write-Host "git remote add $RemoteName $GitUrl"
58+
git remote add $RemoteName $GitUrl
59+
if ($LASTEXITCODE -ne 0)
60+
{
61+
Write-Error "Unable to add remote LASTEXITCODE=$($LASTEXITCODE), see command output above."
6062
exit $LASTEXITCODE
63+
}
64+
}
65+
# Checkout to $PRBranch, create new one if not exists.
66+
git show-ref --verify --quiet refs/heads/$PRBranchName
67+
if ($LASTEXITCODE -eq 0) {
68+
Write-Host "git checkout $PRBranchName."
69+
git checkout $PRBranchName
70+
}
71+
else {
72+
Write-Host "git checkout -b $PRBranchName."
73+
git checkout -b $PRBranchName
6174
}
62-
63-
Write-Host "git checkout -b $PRBranchName"
64-
git checkout -b $PRBranchName
6575
if ($LASTEXITCODE -ne 0)
6676
{
6777
Write-Error "Unable to create branch LASTEXITCODE=$($LASTEXITCODE), see command output above."
@@ -105,6 +115,7 @@ do
105115
{
106116
$needsRetry = $true
107117
Write-Host "Git push failed with LASTEXITCODE=$($LASTEXITCODE) Need to fetch and rebase: attempt number=$($tryNumber)"
118+
108119
Write-Host "git fetch $RemoteName"
109120
git fetch $RemoteName
110121
if ($LASTEXITCODE -ne 0)
@@ -168,8 +179,12 @@ do
168179
}
169180
} while($needsRetry -and $tryNumber -le $numberOfRetries)
170181

171-
if ($LASTEXITCODE -ne 0)
182+
if ($LASTEXITCODE -ne 0 -or $tryNumber -gt $numberOfRetries)
172183
{
173184
Write-Error "Unable to push commit after $($tryNumber) retries LASTEXITCODE=$($LASTEXITCODE), see command output above."
185+
if (0 -eq $LASTEXITCODE)
186+
{
187+
exit 1
188+
}
174189
exit $LASTEXITCODE
175190
}

0 commit comments

Comments
 (0)