我正在尝试找出一种方法来执行以下操作
variables:
${{ if eq(variables['var-a'], exists_and_is_set) }}:
namespaceName: $(var-a)
${{ if ne(variables['var-a'], exists_and_is_set) }}:
namespaceName: $(var-b)
Run Code Online (Sandbox Code Playgroud)
基本上,如果变量 A 存在并且有一个值 != null != '' 则使用它,否则使用另一个变量。这里的脚本非常简单,我找不到方法来做到这一点。原因是我正在进行更改,在使用此模板的数百个 CICD 管道中,只有 10 个左右会使用var-a,因此我试图找到一种方法来实现逻辑,而不必去更新数百个管道包含他们不会使用的东西。
最近正在研究 Azure DevOps 模板。并遇到了这种双花括号语法。只是想知道如何在 Azure DevOps 中使用双花括号。
看过一些关于相同内容的帖子。
可以说,我在组中定义了一个变量,如下所示。
我们还可以在 yaml 文件中定义变量,如下所示。
variables:
- name: BuildConfiguration
value: 'Release'
- name: finalBuildArtifactName
value: 'TempFolderName'
Run Code Online (Sandbox Code Playgroud)
什么时候应该使用双大括号语法?
我有关于并使用以下方法来引用变量的想法。
与上述两个相比,我们可以用双花括号完成什么?
让 yaml 管道中的东西正常工作非常困难。进行更改、签入、运行管道、查看结果并再次返回。这非常耗时,而且至少可以说并不顺利。
Azure Pipelines具有表达式和条件,但是我找不到基于条件将两个值之一分配给变量的方法。
有什么办法可以完成这个伪代码吗?
${{ if endsWith( variables['Build.SourceBranchName'], '/master' ) }}:
buildVersion: variables['mavenVersion']
${{ else }}:
buildVersion: variables['Build.SourceBranchName']
Run Code Online (Sandbox Code Playgroud)