如何设置基于标签的天蓝色管道阶段触发?
How to set Tags based azure pipeline stage triggering?
我有以下 Azure YAML 管道文件,其阶段根据推送到 Azure 存储库的标记 some-tag-v*
参考执行。
trigger:
branches:
include:
- refs/tags/some-tag-v*
exclude:
- refs/tags/some-branch
pool:
name: some-name
demands:
- Agent.Name -equals some-name
stages:
- stage: A
jobs:
- job: A
steps:
- checkout: self
- bash: |
some-bash-commands
- stage: B
jobs:
- job: B
steps:
- bash: |
More-bash-commands
问题: 我希望仅在按下 some-tag-2-v*
而不是 some-tag-v*
时执行阶段 B。我正在查看基于条件的触发,但我不确定这是否是正确的方法。
我认为你可以使用 YAML conditions。
stages:
- stage: A
condition: ...
jobs:
- job: A
steps:
- checkout: self
- bash: |
some-bash-commands
对于条件,您可能可以利用管道和构建变量,例如:
variables:
isSomeTag: $[eq(variables['Build.SourceBranch'], 'refs/tags/some-tag-v')]
我建议你可以直接使用Stages中的IF Expression。这样会更方便。
这是一个例子:
trigger:
branches:
include:
- - refs/tags/some-tag-v*
exclude:
- refs/tags/some-branch
stages:
- ${{ if eq(variables['Build.SourceBranch'], 'refs/tags/some-tag-v') }}:
- stage: A
jobs:
- job: A
steps:
- checkout: self
- bash: echo 1
- ${{ if eq(variables['Build.SourceBranch'], 'some-tag-2-v') }}:
- stage: B
jobs:
- job: B
steps:
- bash: echo 2
当管道被some-tag-2-v触发时,它只会运行阶段B。
我有以下 Azure YAML 管道文件,其阶段根据推送到 Azure 存储库的标记 some-tag-v*
参考执行。
trigger:
branches:
include:
- refs/tags/some-tag-v*
exclude:
- refs/tags/some-branch
pool:
name: some-name
demands:
- Agent.Name -equals some-name
stages:
- stage: A
jobs:
- job: A
steps:
- checkout: self
- bash: |
some-bash-commands
- stage: B
jobs:
- job: B
steps:
- bash: |
More-bash-commands
问题: 我希望仅在按下 some-tag-2-v*
而不是 some-tag-v*
时执行阶段 B。我正在查看基于条件的触发,但我不确定这是否是正确的方法。
我认为你可以使用 YAML conditions。
stages:
- stage: A
condition: ...
jobs:
- job: A
steps:
- checkout: self
- bash: |
some-bash-commands
对于条件,您可能可以利用管道和构建变量,例如:
variables:
isSomeTag: $[eq(variables['Build.SourceBranch'], 'refs/tags/some-tag-v')]
我建议你可以直接使用Stages中的IF Expression。这样会更方便。
这是一个例子:
trigger:
branches:
include:
- - refs/tags/some-tag-v*
exclude:
- refs/tags/some-branch
stages:
- ${{ if eq(variables['Build.SourceBranch'], 'refs/tags/some-tag-v') }}:
- stage: A
jobs:
- job: A
steps:
- checkout: self
- bash: echo 1
- ${{ if eq(variables['Build.SourceBranch'], 'some-tag-2-v') }}:
- stage: B
jobs:
- job: B
steps:
- bash: echo 2
当管道被some-tag-2-v触发时,它只会运行阶段B。