小编pie*_*cia的帖子

模板条件,使用 Agent.OS | AGENT_操作系统

我想包含一个取决于变量 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.

我不知道如何使用这种变量。

根据我在 stackoverflow 上发现的内容(例如12),这是不可能的。

azure-pipelines azure-pipelines-yaml

3
推荐指数
1
解决办法
1294
查看次数

如何在包含/导入的任务中使用标签?

有一个示例手册的主要任务:

\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\n
Run Code Online (Sandbox Code Playgroud)\n

include_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\n
Run 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\n
Run Code Online (Sandbox Code Playgroud)\n

一些预期用途的示例:

\n
\xe2\x9d\xaf …
Run Code Online (Sandbox Code Playgroud)

ansible

2
推荐指数
1
解决办法
4801
查看次数