构建时仅在发布管道上运行我的生产阶段,而不是其他阶段。当我运行开发的构建管道时,与开发相同,只有开发阶段应该在发布管道上运行。
与开发相同,当我运行开发的构建管道时,只有开发阶段应该在发布管道上运行。
对于Classic发布管道,它具有触发设置,不允许您指定运行目标阶段的条件。
作为解决方法,您可以在舞台下的
job
上设置条件,步骤如下:
安装扩展触发Azure DevOps Pipeline,可用于触发发布管道。注意:虽然它有阶段设置来指定目标发布阶段,但它不能正常工作。
在您的构建管道中,调用上述任务,选择目标发布,将发布变量json设置为
{'RunStage' : 'dev'}
(dev是本示例中的目标阶段)。
在release管道中,添加变量
RunStage
,将其设置为release
范围,并在发布期间可设置。
对于每个阶段的作业,在条件表达式中设置
agent job
级别的条件:dev为开发阶段,test为测试阶段。
或者您可以使用YAML编辑器进行发布管道,它可以在阶段级别设置条件。步骤类似,详细信息如下:
更改为触发器 Azure DevOps Pipeline 任务中的触发器
build
,因为发布是 yaml。
添加变量
RunStage
并启用Let users override this value when running this pipeline
。发布YAML如下,在stage
级别设置条件:
trigger: none
pool:
vmImage: ubuntu-latest
stages:
- stage: test
condition: eq(variables['RunStage'], 'test')
jobs:
- job: A1
steps:
- script: echo test
- stage: dev
condition: eq(variables['RunStage'], 'dev')
dependsOn: test
jobs:
- job: B1
steps:
- script: echo dev
- stage: prod
condition: eq(variables['RunStage'], 'prod')
dependsOn: dev
jobs:
- job: C1
steps:
- script: echo dev