42 lines
1.3 KiB
PowerShell
42 lines
1.3 KiB
PowerShell
. (Join-Path $PSScriptRoot common.ps1)
|
|
Install-Module -Name powershell-yaml -RequiredVersion 0.4.1 -Force -Scope CurrentUser
|
|
$ymlfiles = Get-ChildItem $RepoRoot -recurse | Where-Object {$_ -like '*.yml'}
|
|
$affectedRepos = [System.Collections.ArrayList]::new()
|
|
|
|
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}."
|
|
[void]$affectedRepos.Add($errorMessage)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($affectedRepos.Count -gt 0)
|
|
{
|
|
Write-Output "Ref not found in the following Repository Resources."
|
|
foreach ($errorMessage in $affectedRepos)
|
|
{
|
|
Write-Output "`t$errorMessage"
|
|
}
|
|
Write-Output "Please ensure you add a Ref: when using repository resources"
|
|
Write-Output "More Info at https://aka.ms/azsdk/engsys/tools-versioning"
|
|
exit 1
|
|
}
|
|
|
|
Write-Output "All repository resources in yaml files reference a valid tag" |