diff --git a/eng/common/pipelines/templates/steps/create-pull-request.yml b/eng/common/pipelines/templates/steps/create-pull-request.yml index f3b32ae89cc9..4c6d8bc121ba 100644 --- a/eng/common/pipelines/templates/steps/create-pull-request.yml +++ b/eng/common/pipelines/templates/steps/create-pull-request.yml @@ -22,49 +22,17 @@ parameters: CloseAfterOpenForTesting: false steps: - -- pwsh: | - echo "git add -A" - git add -A - - echo "git diff --name-status --cached --exit-code" - git diff --name-status --cached --exit-code - - if ($LastExitCode -ne 0) { - echo "##vso[task.setvariable variable=HasChanges]$true" - echo "Changes detected so setting HasChanges=true" - } - else { - echo "##vso[task.setvariable variable=HasChanges]$false" - echo "No changes so skipping code push" - } - displayName: Check for changes - condition: and(succeeded(), eq(${{ parameters.SkipCheckingForChanges }}, false)) - workingDirectory: ${{ parameters.WorkingDirectory }} - ignoreLASTEXITCODE: true - -- pwsh: | - # Remove the repo owner from the front of the repo name if it exists there - $repoName = "${{ parameters.RepoName }}" -replace "^${{ parameters.RepoOwner }}/", "" - echo "##vso[task.setvariable variable=RepoNameWithoutOwner]$repoName" - echo "RepoName = $repoName" - displayName: Remove Repo Owner from Repo Name - condition: succeeded() - workingDirectory: ${{ parameters.WorkingDirectory }} - -- task: PowerShell@2 - displayName: Push changes - condition: and(succeeded(), eq(variables['HasChanges'], 'true')) - inputs: - pwsh: true - workingDirectory: ${{ parameters.WorkingDirectory }} - filePath: ${{ parameters.ScriptDirectory }}/git-branch-push.ps1 - arguments: > - -PRBranchName "${{ parameters.PRBranchName }}" - -CommitMsg "${{ parameters.CommitMsg }}" - -GitUrl "https://$(azuresdk-github-pat)@github.com/${{ parameters.PROwner }}/$(RepoNameWithoutOwner).git" - -PushArgs "${{ parameters.PushArgs }}" - -SkipCommit $${{ parameters.SkipCheckingForChanges }} +- template: /eng/common/pipelines/templates/steps/git-push-changes.yml + parameters: + PRBranchName: ${{ parameters.PRBranchName }} + PROwner: ${{ parameters.PROwner }} + CommitMsg: ${{ parameters.CommitMsg }} + RepoOwner: ${{ parameters.RepoOwner }} + RepoName: ${{ parameters.RepoName }} + PushArgs: ${{ parameters.PushArgs }} + WorkingDirectory: ${{ parameters.WorkingDirectory }} + ScriptDirectory: ${{ parameters.ScriptDirectory }} + SkipCheckingForChanges: ${{ parameters.SkipCheckingForChanges }} - task: PowerShell@2 displayName: Create pull request diff --git a/eng/common/pipelines/templates/steps/docs-metadata-release.yml b/eng/common/pipelines/templates/steps/docs-metadata-release.yml index a01b197035db..7722b2ec1b93 100644 --- a/eng/common/pipelines/templates/steps/docs-metadata-release.yml +++ b/eng/common/pipelines/templates/steps/docs-metadata-release.yml @@ -20,6 +20,7 @@ parameters: OnboardingBranch: '' CloseAfterOpenForTesting: false SkipPackageJson: false + RemoteName: 'origin' steps: - pwsh: | @@ -82,20 +83,15 @@ steps: env: GH_TOKEN: $(azuresdk-github-pat) -- template: /eng/common/pipelines/templates/steps/create-pull-request.yml +- template: /eng/common/pipelines/templates/steps/git-push-changes.yml parameters: + PRBranchName: 'master' + CommitMsg: "Update docs metadata and targeting for release of ${{ parameters.ArtifactName }}" RepoName: ${{ parameters.TargetDocRepoName }} RepoOwner: ${{ parameters.TargetDocRepoOwner }} - PRBranchName: ${{ parameters.PRBranchName }} - CommitMsg: "Update docs metadata and targeting for release of ${{ parameters.ArtifactName }}" - PRTitle: "Docs.MS Release Updates for ${{ parameters.ArtifactName }}" - BaseBranchName: ${{ parameters.SourceBranchName }} WorkingDirectory: ${{ parameters.WorkingDirectory }}/repo ScriptDirectory: ${{ parameters.WorkingDirectory }}/${{ parameters.ScriptDirectory }} - GHReviewersVariable: ${{ parameters.GHReviewersVariable }} - GHTeamReviewersVariable: ${{ parameters.GHTeamReviewersVariable }} - PRLabels: ${{ parameters.PRLabels }} - CloseAfterOpenForTesting: ${{ parameters.CloseAfterOpenForTesting }} + RemoteName: ${{ parameters.RemoteName }} - ${{if ne( parameters['OnboardingBranch'], '')}}: - pwsh: | @@ -123,17 +119,12 @@ steps: pwsh: true env: GH_TOKEN: $(azuresdk-github-pat) - - - template: /eng/common/pipelines/templates/steps/create-pull-request.yml + - template: /eng/common/pipelines/templates/steps/git-push-changes.yml parameters: + PRBranchName: 'master' + CommitMsg: "Update docs metadata and targeting for release of ${{ parameters.ArtifactName }}" RepoName: ${{ parameters.TargetDocRepoName }} RepoOwner: ${{ parameters.TargetDocRepoOwner }} - PRBranchName: ${{ parameters.PRBranchName }}-ci - CommitMsg: "CI Update for release of ${{ parameters.ArtifactName }}" - PRTitle: "Docs.MS CI Updates for ${{ parameters.ArtifactName }}" - BaseBranchName: ${{ parameters.OnboardingBranch }} WorkingDirectory: ${{ parameters.WorkingDirectory }}/repo ScriptDirectory: ${{ parameters.WorkingDirectory }}/${{ parameters.ScriptDirectory }} - GHReviewersVariable: ${{ parameters.GHReviewersVariable }} - GHTeamReviewersVariable: ${{ parameters.GHTeamReviewersVariable }} - CloseAfterOpenForTesting: ${{ parameters.CloseAfterOpenForTesting }} + RemoteName: ${{ parameters.RemoteName }} diff --git a/eng/common/pipelines/templates/steps/git-push-changes.yml b/eng/common/pipelines/templates/steps/git-push-changes.yml new file mode 100644 index 000000000000..e1115d25be90 --- /dev/null +++ b/eng/common/pipelines/templates/steps/git-push-changes.yml @@ -0,0 +1,56 @@ +parameters: + PRBranchName: not-specified + PROwner: azure-sdk + CommitMsg: not-specified + RepoOwner: Azure + RepoName: $(Build.Repository.Name) + PushArgs: + WorkingDirectory: $(System.DefaultWorkingDirectory)' + ScriptDirectory: eng/common/scripts + SkipCheckingForChanges: false + RemoteName: not-specified + +steps: +- pwsh: | + echo "git add -A" + git add -A + + echo "git diff --name-status --cached --exit-code" + git diff --name-status --cached --exit-code + + if ($LastExitCode -ne 0) { + echo "##vso[task.setvariable variable=HasChanges]$true" + echo "Changes detected so setting HasChanges=true" + } + else { + echo "##vso[task.setvariable variable=HasChanges]$false" + echo "No changes so skipping code push" + } + displayName: Check for changes + condition: and(succeeded(), eq(${{ parameters.SkipCheckingForChanges }}, false)) + workingDirectory: ${{ parameters.WorkingDirectory }} + ignoreLASTEXITCODE: true + +- pwsh: | + # Remove the repo owner from the front of the repo name if it exists there + $repoName = "${{ parameters.RepoName }}" -replace "^${{ parameters.RepoOwner }}/", "" + echo "##vso[task.setvariable variable=RepoNameWithoutOwner]$repoName" + echo "RepoName = $repoName" + displayName: Remove Repo Owner from Repo Name + condition: succeeded() + workingDirectory: ${{ parameters.WorkingDirectory }} + +- task: PowerShell@2 + displayName: Push changes + condition: and(succeeded(), eq(variables['HasChanges'], 'true')) + inputs: + pwsh: true + workingDirectory: ${{ parameters.WorkingDirectory }} + filePath: ${{ parameters.ScriptDirectory }}/git-branch-push.ps1 + arguments: > + -PRBranchName "${{ parameters.PRBranchName }}" + -CommitMsg "${{ parameters.CommitMsg }}" + -GitUrl "https://$(azuresdk-github-pat)@github.com/${{ parameters.PROwner }}/$(RepoNameWithoutOwner).git" + -PushArgs "${{ parameters.PushArgs }}" + -SkipCommit $${{ parameters.SkipCheckingForChanges }} + -RemoteName ${{ parameters.RemoteName }} \ No newline at end of file