azure 变量作为模板参数输入

wqsoz72f  于 2023-03-13  发布在  其他
关注(0)|答案(1)|浏览(87)

我尝试使用变量设置为true或false作为字符串,并使用Azure构建管道中的以下代码将其传递到模板中。

jobs:
  - job: run
    condition: eq(variables.runstage, true)
    timeoutInMinutes: 500
    steps:
      - template: './process.yaml'
        parameters:
          mail_trigger: $(enabled)

在我的进程.yaml文件中

parameters:
- name: enabled
  type: string

我使用参数的任务

- ${{ if eq(parameters.enabled, true) }}:
  - task: some task

但是,即使在将true作为启用变量的值之后,任务仍被跳过。
请帮帮忙

jgzswidk

jgzswidk1#

我是如何有条件地运行测试的。使用此模板的作业可以选择是否需要运行测试。

在模板中

首先在parameters下将RunTests声明为布尔值

parameters:
- name: RunTests
  type: boolean
  default: true

在你的任务中使用条件参数来检查布尔值,我不认为你需要eq操作符。

- task: DotNetCoreCLI@2
  displayName: '.NET Test'
  condition: and(succeeded(), ${{parameters.RunTests}} )
  inputs:
    command: test
    projects: ${{ parameters.testProjectFilePath }}
    arguments: '--configuration release --no-restore --collect "Code coverage" --logger trx --results-directory "$(Agent.BuildDirectory)\TestResults'
    publishTestResults: false

在使用此模板的任务中

您可以传入RunTests参数。

- template: templates/yourtemplate.yml
  parameters:
    RunTests: ${{eq(parameters['RunTests'], 'yes')}}

编辑:我检查“yes”,因为当作业运行时,我会向用户显示一个带有yes或no选项的提示(如here所示),但是您应该也能够传入一个布尔值。

相关问题