除了变量组之外,我还尝试将 2 个值之一分配给变量,但找不到有关如何使用 IF ELSE 的参考。
基本上我需要将这个 jerkins 逻辑转换为 azure DevOps。
詹金斯
if (branch = 'master') {
env = 'a'
} else if (branch = 'dev'){
env ='b'
}
Run Code Online (Sandbox Code Playgroud)
我从下一个中找到了 1 个参考,但是如果变量部分没有变量组,这个参考似乎有效。
但是在我的管道中,我已经有一个用于秘密的变量组,所以我必须使用名称/值约定,并且该示例不适用于诸如expected a mappingorA mapping was not expected或 or 之类的错误Unexpected value 'env'
variables:
- group: my-global
- name: env
value:
${{ if eq(variables['Build.SourceBranchName'], 'master') }}:
env: a
${{ if eq(variables['Build.SourceBranchName'], 'dev') }}:
env: b
Run Code Online (Sandbox Code Playgroud)
或者
variables:
- group: my-global
- name: env
value: …Run Code Online (Sandbox Code Playgroud) 我对Ansible很新,并试图理解YAML文件.因为我不清楚这条线 - file: dest={{ '{{' }} docroot {{ '}}' }.有人可以解释一下这些花括号'{{''}}'在做什么吗?
- name: Create Web Root
when: nginxinstalled|success
file: dest={{ '{{' }} docroot {{ '}}' }} mode=775 state=directory owner=www-data group=www-data
notify:
- Reload Nginx
Run Code Online (Sandbox Code Playgroud) Azure Pipelines具有表达式和条件,但是我找不到基于条件将两个值之一分配给变量的方法。
有什么办法可以完成这个伪代码吗?
${{ if endsWith( variables['Build.SourceBranchName'], '/master' ) }}:
buildVersion: variables['mavenVersion']
${{ else }}:
buildVersion: variables['Build.SourceBranchName']
Run Code Online (Sandbox Code Playgroud)