我有一个Azure DevOps管道,用于旋转一些键。有两个主要要求-
为此,我计划使用在不同日期运行的cron计划。然后应使用参数,默认值基于星期几设置为特定的“键类型”。使用参数意味着用户还可以指定手动运行管道时要旋转的键。
不幸的是,我想出的办法不起作用。参数中的四个表达式均产生以下错误-
A template expression is not allowed in this context
根据documentation ...
编译时表达式可以在任何地方使用
...但是这似乎不正确。我希望我会丢失一些东西,而不是文档不正确,但是无论哪种方式,我都不确定如何实现自己的目标。
pr: none
trigger: none
schedules:
- cron: 0 2 * * 0-3,6
displayName: Rotate a key
branches:
include:
- develop
always: true
parameters:
- name: keyKinds
displayName: Key Kinds
type: string
${{ if not(in(format('{0:dddd}', pipeline.startTime), 'Sunday', 'Monday', 'Tuesday')) }}:
default: primary
${{ if eq(format('{0:dddd}', pipeline.startTime), 'Sunday') }}:
default: secondary
${{ if eq(format('{0:dddd}', pipeline.startTime), 'Monday') }}:
default: primaryReadonly
${{ if eq(format('{0:dddd}', pipeline.startTime), 'Tuesday') }}:
default: secondaryReadonly
values:
- primary
- secondary
- primaryReadonly
- secondaryReadonly
答案 0 :(得分:0)
我认为this可能会回答以下问题:
使用模板表达式指定在管道初始化期间如何动态解析值。将模板表达式用以下语法包装:$ {{}}。
模板表达式可以扩展模板参数以及变量。您可以使用参数来影响模板的扩展方式。参数对象的工作方式类似于表达式中的变量对象。模板表达式中只能使用预定义变量。
仅针对阶段,作业,步骤和容器(内部资源)扩展表达式。例如,您不能在触发器内部使用表达式或诸如存储库之类的资源。此外,在Azure DevOps 2020 RTW上,您不能在容器内使用模板表达式。