【问题标题】:Set Azure parameters' value based on conditions根据条件设置 Azure 参数值
【发布时间】:2022-10-08 05:57:02
【问题描述】:

我得到了一个 Azure yaml 管道,它定义了一个参数,并通过 repo 中 2 个不同路径的更改来触发:

trigger:
  branches:
    include: 
     - master
  paths:
    include: 
      - "/SomePath1/*"
      - "/SomePath2/*"
parameters:
  - name: SomeFlag
    default: value1 
    type: string

有没有办法让我告诉管道,如果它是从“/SomePath1/”触发的" 那么参数的值是 "value1",如果它是从 "/SomePath2/” 那么它会得到“Value2”(当然不需要手动运行管道)?

【问题讨论】:

    标签: azure azure-pipelines azure-pipelines-yaml azure-yaml-pipelines


    【解决方案1】:

    不是我知道的。你可以做一些 git 魔术来查看哪些文件被更改了......

    但如果你想要这个,我建议你创建 1 个包含大部分管道逻辑的模板和 2 个引用共享 yml 并为 2 个路径定义特定触发器的单独 yaml 文件。您还可以在其中定义路径特定的变量。

    【讨论】:

      【解决方案2】:

      您可以简单地使用用户预定义的变量来验证哪个分支是触发器的来源。

      例如,您可以根据预定义的变量运行不同的作业构建.SourceBranch

      trigger:
        branches:
          include: 
           - master
        paths:
          include: 
            - SomePath1/*
            - SomePath2/*
      
      jobs:
      - ${{ if contains(variables['Build.SourceBranch'], 'SomePath1') }}:
        - job: SomePath1
          steps:
          - script: echo Building SomePath1...
      - ${{ if contains(variables['Build.SourceBranch'], 'SomePath2') }}:
        - job: SomePath2
          steps:
          - script: echo Building SomePath2...
      

      材料:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-07-31
        • 2020-12-13
        • 1970-01-01
        • 1970-01-01
        • 2020-07-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多