Sync eng/common directory with azure-sdk-tools for PR 1560 (#2133)
* Add template to merge multiple subscription configurations * Update eng/common/TestResources/build-test-resource-config.yml Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com> Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com> Co-authored-by: Ben Broderick Phillips <ben@benbp.net> Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
This commit is contained in:
parent
3e1af936d9
commit
760026715a
65
eng/common/TestResources/build-test-resource-config.yml
Normal file
65
eng/common/TestResources/build-test-resource-config.yml
Normal file
@ -0,0 +1,65 @@
|
||||
parameters:
|
||||
- name: SubscriptionConfiguration
|
||||
type: string
|
||||
default: $(sub-config-azure-cloud-test-resources)
|
||||
- name: SubscriptionConfigurations
|
||||
type: object
|
||||
default: null
|
||||
|
||||
steps:
|
||||
- ${{ if parameters.SubscriptionConfiguration }}:
|
||||
- pwsh: |
|
||||
$config = @'
|
||||
${{ parameters.SubscriptionConfiguration }}
|
||||
'@ | ConvertFrom-Json -AsHashtable
|
||||
|
||||
foreach($pair in $config.GetEnumerator()) {
|
||||
if ($pair.Value -is [Hashtable]) {
|
||||
foreach($nestedPair in $pair.Value.GetEnumerator()) {
|
||||
Write-Host "##vso[task.setvariable variable=$($nestedPair.Name);issecret=true;]$($nestedPair.Value)"
|
||||
}
|
||||
} else {
|
||||
Write-Host "##vso[task.setvariable variable=$($pair.Name);issecret=true;]$($pair.Value)"
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host ($config | ConvertTo-Json)
|
||||
$serialized = $config | ConvertTo-Json -Compress
|
||||
Write-Host "##vso[task.setvariable variable=SubscriptionConfiguration;]$serialized"
|
||||
displayName: Initialize SubscriptionConfiguration variable
|
||||
|
||||
- ${{ if parameters.SubscriptionConfigurations }}:
|
||||
- pwsh: |
|
||||
Write-Host "##vso[task.setvariable variable=SubscriptionConfiguration;]{}"
|
||||
displayName: Initialize SubscriptionConfiguration variable for merging
|
||||
condition: eq(variables['SubscriptionConfiguration'], '')
|
||||
|
||||
- ${{ each config in parameters.SubscriptionConfigurations }}:
|
||||
- pwsh: |
|
||||
$config = @'
|
||||
$(SubscriptionConfiguration)
|
||||
'@ | ConvertFrom-Json -AsHashtable
|
||||
$addToConfig = @'
|
||||
${{ config }}
|
||||
'@ | ConvertFrom-Json -AsHashtable
|
||||
|
||||
foreach ($pair in $addToConfig.GetEnumerator()) {
|
||||
if ($pair.Value -is [Hashtable]) {
|
||||
if (!$config.ContainsKey($pair.Name)) {
|
||||
$config[$pair.Name] = @{}
|
||||
}
|
||||
foreach($nestedPair in $pair.Value.GetEnumerator()) {
|
||||
Write-Host "##vso[task.setvariable variable=$($nestedPair.Name);issecret=true;]$($nestedPair.Value)"
|
||||
$config[$pair.Name][$nestedPair.Name] = $nestedPair.Value
|
||||
}
|
||||
} else {
|
||||
Write-Host "##vso[task.setvariable variable=$($pair.Name);issecret=true;]$($pair.Value)"
|
||||
$config[$pair.Name] = $pair.Value
|
||||
}
|
||||
}
|
||||
|
||||
$serialized = $config | ConvertTo-Json -Compress
|
||||
Write-Host ($config | ConvertTo-Json)
|
||||
Write-Host "##vso[task.setvariable variable=SubscriptionConfiguration;]$serialized"
|
||||
|
||||
displayName: Merge Test Resource Configurations
|
||||
Loading…
Reference in New Issue
Block a user