90 lines
3.2 KiB
YAML
90 lines
3.2 KiB
YAML
# Expects azuresdk-github-pat is set to the PAT for azure-sdk
|
|
# Expects the buildtools to be cloned
|
|
|
|
parameters:
|
|
BaseBranchName: $(Build.SourceBranch)
|
|
PRBranchName: not-specified
|
|
PROwner: azure-sdk
|
|
CommitMsg: not-specified
|
|
RepoOwner: Azure
|
|
RepoName: $(Build.Repository.Name)
|
|
PushArgs:
|
|
WorkingDirectory: $(System.DefaultWorkingDirectory)
|
|
PRTitle: not-specified
|
|
PRBody: ''
|
|
ScriptDirectory: eng/common/scripts
|
|
GHReviewersVariable: ''
|
|
GHTeamReviewersVariable: ''
|
|
GHAssignessVariable: ''
|
|
# Multiple labels seperated by comma, e.g. "bug, APIView"
|
|
PRLabels: ''
|
|
SkipCheckingForChanges: false
|
|
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 }}
|
|
|
|
- task: PowerShell@2
|
|
displayName: Create pull request
|
|
condition: and(succeeded(), eq(variables['HasChanges'], 'true'))
|
|
inputs:
|
|
pwsh: true
|
|
workingDirectory: ${{ parameters.WorkingDirectory }}
|
|
filePath: ${{ parameters.ScriptDirectory }}/Submit-PullRequest.ps1
|
|
arguments: >
|
|
-RepoOwner "${{ parameters.RepoOwner }}"
|
|
-RepoName "$(RepoNameWithoutOwner)"
|
|
-BaseBranch "${{ parameters.BaseBranchName }}"
|
|
-PROwner "${{ parameters.PROwner }}"
|
|
-PRBranch "${{ parameters.PRBranchName }}"
|
|
-AuthToken "$(azuresdk-github-pat)"
|
|
-PRTitle "${{ parameters.PRTitle }}"
|
|
-PRBody "${{ coalesce(parameters.PRBody, parameters.CommitMsg, parameters.PRTitle) }}"
|
|
-PRLabels "${{ parameters.PRLabels }}"
|
|
-UserReviewers "${{ parameters.GHReviewersVariable }}"
|
|
-TeamReviewers "${{ parameters.GHTeamReviewersVariable }}"
|
|
-Assignees "${{ parameters.GHAssignessVariable }}"
|
|
-CloseAfterOpenForTesting $${{ parameters.CloseAfterOpenForTesting }}
|