Azure DevOps 构建变量 Build.Reason 可以用于 YAML 模板编译时条件吗?
Can Azure DevOps build variable Build.Reason be used in YAML template compile time conditions?
我想要这样的东西:
- ${{ if or(eq(parameters.RunTestsOnPRBuildOnly, false), eq(variables.Build.Reason, 'PullRequest')) }}:
- template: ps-module-run-tests.yml
这不起作用,因为 variables.Build.Reason
是空的。有可能吗?
请注意,我知道如何修改 ps-module-run-tests.yml
模板以将我的愿望表达为运行时条件。换句话说,我知道如何得出这个结论:
我很好奇的是Build.Reason
是否可以在编译时条件下使用,以至于这些步骤甚至都不会被渲染。从表面上看,这并没有内在的问题,因为该值在一开始就已知,但这取决于模板何时编译。如果太早,那是不可能的,但我不知道这些细节。也许我做不到,因为我错过了一些东西。
那么,有可能吗?
而不是
variables.Build.Reason
尝试使用
variables['Build.Reason']
根据https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml#build-variables-devops-services
Build.Reason 在编译时可用于模板表达式
我看过 https://docs.microsoft.com/en-us/azure/devops/pipelines/process/expressions?view=azure-devops#conditional-insertion 有一个例子也有注意,如果你想使用 属性 取消引用语法它只能包含
所以点号是不可接受的(Build 和 Reason 之间的点)
我想要这样的东西:
- ${{ if or(eq(parameters.RunTestsOnPRBuildOnly, false), eq(variables.Build.Reason, 'PullRequest')) }}:
- template: ps-module-run-tests.yml
这不起作用,因为 variables.Build.Reason
是空的。有可能吗?
请注意,我知道如何修改 ps-module-run-tests.yml
模板以将我的愿望表达为运行时条件。换句话说,我知道如何得出这个结论:
我很好奇的是Build.Reason
是否可以在编译时条件下使用,以至于这些步骤甚至都不会被渲染。从表面上看,这并没有内在的问题,因为该值在一开始就已知,但这取决于模板何时编译。如果太早,那是不可能的,但我不知道这些细节。也许我做不到,因为我错过了一些东西。
那么,有可能吗?
而不是
variables.Build.Reason
尝试使用
variables['Build.Reason']
根据https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml#build-variables-devops-services Build.Reason 在编译时可用于模板表达式
我看过 https://docs.microsoft.com/en-us/azure/devops/pipelines/process/expressions?view=azure-devops#conditional-insertion 有一个例子也有注意,如果你想使用 属性 取消引用语法它只能包含