diff --git a/eng/common/README.md b/eng/common/README.md index f855e54adae..0c413a8ea5b 100644 --- a/eng/common/README.md +++ b/eng/common/README.md @@ -9,4 +9,15 @@ should not contain binary files as they don't play well with git. Any updates to files in the `eng/common` directory should be made in the [azure-sdk-tools](https://github.com/azure/azure-sdk-tools) repo. All changes made will cause a PR to created in all subscribed azure-sdk language repos which will blindly replace all contents of the `eng/common` directory in that repo. For that reason do **NOT** make changes to files in this directory in the individual azure-sdk -languages repos as they will be overwritten the next time an update is taken from the common azure-sdk-tools repo. \ No newline at end of file +languages repos as they will be overwritten the next time an update is taken from the common azure-sdk-tools repo. + +### Workflow + +Starting from [these changes](https://github.com/Azure/azure-sdk-tools/commit/401dbcaa17075ceb94073b6a4d7acafce8687a5d) the 'Sync eng/common directory' PRs will be created in the language repositories once a pull request that touches the eng/common directory is submitted against the master branch. This will make it easier for changes to be tested in each individual language repo before merging the changes in the azure-sdk-tools repo. The workflow is explained bellow + +1. Create a PR against Azure/azure-sdk-tools:master. This is the **Tools PR**. +2. `azure-sdk-tools - sync - eng-common` is run automatically. It creates **Sync PRs** in each of the connected language repositories using the format `Sync eng/common directory with azure-sdk-tools for PR {Tools PR Number}`. Each **Sync PR** will contain a link back to the **Tools PR** that triggered it. +3. More changes pushed to the **Tools PR**, will automatically triggered new pipeline runs in the respective **Sync PRs**. The **Sync PRs** are used to make sure the changes would not break any of the connected pipelines. +4. Once satisfied with the changes; + - First merge all the **Sync PRs**. The **Tools PR** contains links to all the **Sync PRs** + - Finally merge the **Tools PR**. Each **Sync PR** contains the link to the corresponding **Tools PR**. \ No newline at end of file diff --git a/eng/common/pipelines/templates/steps/create-pull-request.yml b/eng/common/pipelines/templates/steps/create-pull-request.yml index 10af61de110..7b3e3a75f45 100644 --- a/eng/common/pipelines/templates/steps/create-pull-request.yml +++ b/eng/common/pipelines/templates/steps/create-pull-request.yml @@ -11,6 +11,7 @@ parameters: PushArgs: WorkingDirectory: $(System.DefaultWorkingDirectory) PRTitle: not-specified + PRBody: not-specified ScriptDirectory: eng/common/scripts GHReviewersVariable: '' GHTeamReviewersVariable: '' @@ -65,6 +66,7 @@ steps: -PRBranch "${{ parameters.PRBranchName }}" -AuthToken "$(azuresdk-github-pat)" -PRTitle "${{ parameters.PRTitle }}" + -PRBody "${{ parameters.PRBody }}" - task: PowerShell@2 displayName: Tag a Reviewer on PR diff --git a/eng/common/scripts/Submit-PullRequest.ps1 b/eng/common/scripts/Submit-PullRequest.ps1 index 5edabc599a9..732d0d4b2b9 100644 --- a/eng/common/scripts/Submit-PullRequest.ps1 +++ b/eng/common/scripts/Submit-PullRequest.ps1 @@ -38,7 +38,9 @@ param( [Parameter(Mandatory = $true)] $PRTitle, - $PRBody = $PRTitle + + [Parameter(Mandatory = $true)] + $PRBody ) $headers = @{ diff --git a/eng/pipelines/eng-common-sync.yml b/eng/pipelines/eng-common-sync.yml index 5386863ed3c..312797399ae 100644 --- a/eng/pipelines/eng-common-sync.yml +++ b/eng/pipelines/eng-common-sync.yml @@ -24,6 +24,9 @@ jobs: DirectoryToSync: "eng/common" PRBranchName: "sync-eng-common-$(System.PullRequest.SourceBranch)-$(System.PullRequest.PullRequestNumber)" PRTitle: "Sync eng/common directory with azure-sdk-tools for PR $(System.PullRequest.PullRequestNumber)" + PRBody: >- + "Sync eng/common directory with azure-sdk-tools for PR https://github.com/Azure/azure-sdk-tools/pull/$(System.PullRequest.PullRequestNumber)/n + See [eng/common workflow](https://github.com/Azure/azure-sdk-tools/blob/master/eng/common/README.md#workflow)" Repos: - azure-sdk-for-android - azure-sdk-for-c diff --git a/eng/pipelines/templates/steps/sync-directory.yml b/eng/pipelines/templates/steps/sync-directory.yml index 59db12ddabd..87506b7f512 100644 --- a/eng/pipelines/templates/steps/sync-directory.yml +++ b/eng/pipelines/templates/steps/sync-directory.yml @@ -5,6 +5,7 @@ parameters: PRBranchName: branch-name-not-set BaseBranchName: master PRTitle: pr-title-not-set + PRBody: pr-body-not-set steps: @@ -28,6 +29,7 @@ steps: BaseBranchName: ${{ parameters.BaseBranchName }} CommitMsg: ${{ parameters.CommitMessage }} PRTitle: ${{ parameters.PRTitle }} + PRBody: ${{ parameters.PRBody }} PushArgs: -f WorkingDirectory: $(System.DefaultWorkingDirectory)/${{ repo }} ScriptDirectory: $(System.DefaultWorkingDirectory)/eng/common/scripts