我想包含一个取决于变量 Agent.OS 的模板:
...
steps:
- ${{ if eq(variables['Agent.OS'], 'Linux') }}:
- template: /templates/prepare-tool.yaml
Run Code Online (Sandbox Code Playgroud)
但这是行不通的。我在步骤列表中没有看到此步骤。我也尝试过:
- ${{ if eq(variables.AGENT_OS, 'Linux') }}:
Run Code Online (Sandbox Code Playgroud)
结果一样。
也许我错了,但是:
运行时和编译时表达式语法之间的区别主要在于可用的上下文。在编译时表达式 (${{ }}) 中,您可以访问参数和静态定义的变量。在运行时表达式 ($[ ]) 中,您可以访问更多变量,但不能访问参数。
所以,我必须使用- $[ if eq(...这个变量,它不是静态的,但它也不起作用:
意外值 '$[ if eq(variables.
我不知道如何使用这种变量。
有一个示例手册的主要任务:
\n---\n- name: Include tasks\n include_tasks: include_task.yml\n # args:\n # apply:\n # tags: task\n tags: task\n\n- name: Import tasks\n import_tasks: import_task.yml\n tags: task\n\n- name: Main task\n debug:\n msg: The main task\n tags: main\nRun Code Online (Sandbox Code Playgroud)\ninclude_task.yml:
\n---\n- name: Subtask3\n debug:\n msg: Subtask3 include\n tags: task1\n\n- name: Subtask4\n debug:\n msg: Subtask4 include\n tags: task2\nRun Code Online (Sandbox Code Playgroud)\n导入_task.yml:
\n---\n- name: Subtask1\n debug:\n msg: Subtask1 import\n tags: task1\n\n- name: Subtask2\n debug:\n msg: Subtask2 import\n tags: task2\nRun Code Online (Sandbox Code Playgroud)\n一些预期用途的示例:
\n\xe2\x9d\xaf …Run Code Online (Sandbox Code Playgroud)