Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure Devops构建管道中的条件变量赋值_Azure_Azure Devops - Fatal编程技术网

Azure Devops构建管道中的条件变量赋值

Azure Devops构建管道中的条件变量赋值,azure,azure-devops,Azure,Azure Devops,Azure Pipelines具有和,但我无法找到任何方法根据条件将参数中的两个值之一分配给变量 我有没有办法做到这一点 parameters: - name: major displayName: " Major Version(Default 3)" type: string default: 3 - name: minor displayName: 'Minor Version(Default 15)' type: string default

Azure Pipelines具有和,但我无法找到任何方法根据条件将参数中的两个值之一分配给变量

我有没有办法做到这一点

parameters:
- name: major
  displayName: " Major Version(Default 3)"
  type: string
  default: 3

- name: minor
  displayName: 'Minor Version(Default 15)'
  type: string
  default: 15
  values:
  - 15
  - 16
  - 17
  - 18
  - 19

- name: patch
  displayName: 'Patch Version(Default 0)'
  type: string
  default: 0

- name: checksum
  displayName: 'Pattern is minor version.patch version, checksum'
  type: string
  values:
  - '15.0, 8003fcfe34dc224be816921e9543fa58ba195653' 
  - '18.1, d8e42f7a7b85ad72ba27117d1f13a790228f1369'
  - '19.0, 4e66eeedba4e1f3ea26cadb0c2bfa96264e7c8fb'

variables:
  major: ${{ parameters.major }}
  minor: ${{ parameters.minor }}
  patch: ${{ parameters.patch }}
  finalChecksum : ${{ if contains(parameters.checksum, parameters.minor.parameters.patch) }}: parameters.checksum.split(',')[1] 
我想要的是
finalchecksum
:(因为验证工作正常)

所以在这里

如果次要版本和修补程序版本为18.1,则finalchecksum=d8e42f7a7b85ad72ba27117d1f13a790228f1369

在我的任务中,我有如下内容:

- bash: |
              echo $(finalChecksum)
然后打印以下错误:

Line 1: `echo True:15.0, 8003fcfe34dc224be816921e9543fa58ba195653.Split(",")[0]'

我对打印
校验和
感兴趣,甚至不知道
参数。校验和.split(',')[1]
确实存在于AzDo世界中。任何建议都很好。

您可以使用内置函数替换变量。我在示例中使用了和函数。 以下是我的配置:

parameters:
- name: major
  displayName: " Major Version(Default 3)"
  type: string
  default: 3

- name: minor
  displayName: 'Minor Version(Default 15)'
  type: string
  default: 15
  values:
  - 15
  - 16
  - 17
  - 18
  - 19

- name: patch
  displayName: 'Patch Version(Default 0)'
  type: string
  default: 0

- name: checksum
  displayName: 'Pattern is minor version.patch version, checksum'
  type: string
  values:
  - '15.0, 8003fcfe34dc224be816921e9543fa58ba195653' 
  - '18.1, d8e42f7a7b85ad72ba27117d1f13a790228f1369'
  - '19.0, 4e66eeedba4e1f3ea26cadb0c2bfa96264e7c8fb'

variables:
  major: ${{ parameters.major }}
  minor: ${{ parameters.minor }}
  patch: ${{ parameters.patch }}
  format: $[format('{0}.{1}, ', variables['minor'], variables['patch'])]
  ${{ if contains(parameters.checksum, parameters.minor.parameters.patch) }}:
    finalChecksum : $[replace('${{parameters.checksum}}',variables['format'],'')]
echo$(最终检查)的结果:

此外,我还遵循了该文件的要求

parameters:
- name: major
  displayName: " Major Version(Default 3)"
  type: string
  default: 3

- name: minor
  displayName: 'Minor Version(Default 15)'
  type: string
  default: 15
  values:
  - 15
  - 16
  - 17
  - 18
  - 19

- name: patch
  displayName: 'Patch Version(Default 0)'
  type: string
  default: 0

- name: checksum
  displayName: 'Pattern is minor version.patch version, checksum'
  type: string
  values:
  - '15.0, 8003fcfe34dc224be816921e9543fa58ba195653' 
  - '18.1, d8e42f7a7b85ad72ba27117d1f13a790228f1369'
  - '19.0, 4e66eeedba4e1f3ea26cadb0c2bfa96264e7c8fb'

variables:
  major: ${{ parameters.major }}
  minor: ${{ parameters.minor }}
  patch: ${{ parameters.patch }}
  format: $[format('{0}.{1}, ', variables['minor'], variables['patch'])]
  ${{ if contains(parameters.checksum, parameters.minor.parameters.patch) }}:
    finalChecksum : $[replace('${{parameters.checksum}}',variables['format'],'')]