我有一个多级管道,它有来自另一个管道的触发器。如果触发管道不在“主”分支中,我想跳过所有生产阶段,例如:
- ${{ if eq(variables.resources.pipeline.ACP_Server_Build.sourceBranch, 'refs/heads/main') }}:
- stage:....
有没有办法在我描述的情况下使用资源sourceBranch?
如果我使用目标管道源分支,我可以使用以下命令来完成:
variables:
- name: isMain
value: ${{ eq(parameters.branch, 'main') }}
- ${{ if eq(variables['isMain'], true) }}:
- stage:....
但是文档显示变量:
resources.pipeline.resourceName.sourceBranch
不可用作模板变量。如果我尝试设置这样的变量:
- name: resourceBranch
value: $(resources.pipeline.resourceName.sourceBranch)
然后
$(resourceBranch)
在步骤内可用,但在模板条件下也不起作用。我真的不想在每个阶段添加 condition:
,因为与根级别条件不同,根级别条件只是将跳过的阶段排除在运行之外,在每个阶段单独添加条件会导致大量“阶段跳过”项目在部署中。
我真的不想为每个阶段添加一个
。condition:
如果你想使用类似的东西,恐怕你没有其他选择:
variables:
- name: resourceBranch
value: $(resources.pipeline.resourceName.sourceBranch)
resources.pipeline.<Alias>.projectName
resources.pipeline.<Alias>.projectID
resources.pipeline.<Alias>.pipelineName
resources.pipeline.<Alias>.pipelineID
resources.pipeline.<Alias>.runName
resources.pipeline.<Alias>.runID
resources.pipeline.<Alias>.runURI
resources.pipeline.<Alias>.sourceBranch
resources.pipeline.<Alias>.sourceCommit
resources.pipeline.<Alias>.sourceProvider
resources.pipeline.<Alias>.requestedFor
resources.pipeline.<Alias>.requestedForID