0

test_env_template.yml

variables:
- name: DB_HOSTNAME
  value: 10.123.56.222
- name: DB_PORTNUMBER
  value: 1521
- name: USERNAME
  value: TEST
- name: PASSWORD
  value: TEST
- name: SCHEMANAME
  value: SCHEMA  
- name: ACTIVEMQNAME
  value: 10.123.56.223
- name: ACTIVEMQPORT
  value: 8161

以及列表中的更多变量。

我想使用循环遍历 test_env_template.yml 中的所有变量来替换文件中的值,有没有办法做到这一点,而不是像 ${{ variables.ACTIVEMQNAME}} 那样单独调用每个值作为否。模板中的变量是动态的。

4

1 回答 1

0

简而言之,没有。没有简单的方法来获取特定于 tamplet 变量的天蓝色管道变量。您可以获取 env 变量,但您将获得常规的 env 变量和映射到 env 变量的管道变量。

你可以通过它得到它,env | sort但我很确定这不是你想要的。

您不能显示特定于模板的变量,但您可以通过这种方式获取所有管道变量:

steps:
- pwsh: 
    Write-Host "${{ convertToJson(variables) }}"

然后你会得到

{
   system: build,
  system.hosttype: build,
  system.servertype: Hosted,
  system.culture: en-US,
  system.collectionId: be1a2b52-5ed1-4713-8508-ed226307f634,
  system.collectionUri: https://dev.azure.com/thecodemanual/,
  system.teamFoundationCollectionUri: https://dev.azure.com/thecodemanual/,
  system.taskDefinitionsUri: https://dev.azure.com/thecodemanual/,
  system.pipelineStartTime: 2021-09-21 08:06:07+00:00,
  system.teamProject: DevOps Manual,
  system.teamProjectId: 4fa6b279-3db9-4cb0-aab8-e06c2ad550b2,
  system.definitionId: 275,
  build.definitionName: kmadof.devops-manual 123 ,
   build.definitionVersion: 1,
  build.queuedBy: Krzysztof Madej,
  build.queuedById: daec281a-9c41-4c66-91b0-8146285ccdcb,
  build.requestedFor: Krzysztof Madej,
  build.requestedForId: daec281a-9c41-4c66-91b0-8146285ccdcb,
  build.requestedForEmail: krzysztof.madej@hotmail.com,
  build.sourceVersion: 583a276cd9a0f5bf664b4b128f6ad45de1592b14,
  build.sourceBranch: refs/heads/master,
  build.sourceBranchName: master,
  build.reason: Manual,
  system.pullRequest.isFork: False,
  system.jobParallelismTag: Public,
  system.enableAccessToken: SecretVariable,
  DB_HOSTNAME: 10.123.56.222,
  DB_PORTNUMBER: 1521,
  USERNAME: TEST,
  PASSWORD: TEST,
  SCHEMANAME: SCHEMA,
  ACTIVEMQNAME: 10.123.56.223,
  ACTIVEMQPORT: 8161
}

如果您为它们添加前缀,那么您可以尝试使用 jq 进行过滤。

于 2021-09-21T07:34:13.620 回答