Sync eng/common directory with azure-sdk-tools repository for Tools PR https://github.com/Azure/azure-sdk-tools/pull/899 (#485)
This commit is contained in:
parent
420a72a9d5
commit
848606fe5c
@ -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.
|
||||
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**.
|
||||
@ -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
|
||||
|
||||
@ -38,7 +38,9 @@ param(
|
||||
|
||||
[Parameter(Mandatory = $true)]
|
||||
$PRTitle,
|
||||
$PRBody = $PRTitle
|
||||
|
||||
[Parameter(Mandatory = $true)]
|
||||
$PRBody
|
||||
)
|
||||
|
||||
$headers = @{
|
||||
|
||||
43
eng/common/scripts/Verify-Resource-Ref.ps1
Normal file
43
eng/common/scripts/Verify-Resource-Ref.ps1
Normal file
@ -0,0 +1,43 @@
|
||||
|
||||
. (Join-Path $PSScriptRoot common.ps1)
|
||||
Install-Module -Name powershell-yaml -RequiredVersion 0.4.1 -Force -Scope CurrentUser
|
||||
$ymlfiles = Get-ChildItem $RepoRoot | Where-Object {$_ -like '*.yml'}
|
||||
$affectedRepos = @()
|
||||
|
||||
foreach ($file in $ymlfiles)
|
||||
{
|
||||
Write-Host "Verifying '${file}'"
|
||||
$ymlContent = Get-Content $file.FullName -Raw
|
||||
$ymlObject = ConvertFrom-Yaml $ymlContent -Ordered
|
||||
|
||||
if ($ymlObject.Contains("resources"))
|
||||
{
|
||||
if ($ymlObject["resources"]["repositories"])
|
||||
{
|
||||
$repositories = $ymlObject["resources"]["repositories"]
|
||||
foreach ($repo in $repositories)
|
||||
{
|
||||
$repoName = $repo["repository"]
|
||||
if (-not ($repo.Contains("ref")))
|
||||
{
|
||||
$errorMessage = "File: ${file}, Repository: ${repoName}."
|
||||
$affectedRepos.Add($errorMessage)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($affectedRepos.Count -gt 0)
|
||||
{
|
||||
Write-Error "Ref not found in the following Repository Resources."
|
||||
foreach ($errorMessage in $affectedRepos)
|
||||
{
|
||||
Write-Information $errorMessage
|
||||
}
|
||||
Write-Information "Please ensure you add a Ref: when using repository resources"
|
||||
Write-Information "More Info at https://aka.ms/azsdk/engsys/tools-versioning"
|
||||
exit 1
|
||||
}
|
||||
|
||||
Write-Information "All repository resources in yaml files reference a valid tag"
|
||||
Loading…
Reference in New Issue
Block a user