azure 我只想在发布管道上运行我的生产阶段,当构建是生产运行时,开发也是如此

ocebsuys  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(102)

在发布管道上只运行我的生产阶段,当构建是生产阶段运行时,而不是其他阶段。与开发相同,当我运行开发的构建管道时,只有开发阶段应该在发布管道上运行。
与开发相同,当我运行开发的构建管道时,只有开发阶段应该在发布管道上运行。

vhipe2zx

vhipe2zx1#

对于Classic版本管道,它有trigger settings,不允许您指定运行目标阶段的条件。
作为解决方法,您可以在舞台下的job上设置条件,步骤如下:
1.我的发布管道如下:测试,开发,生产阶段。

1.安装扩展Trigger Azure DevOps Pipeline,它可以用来触发发布管道。注意:虽然它有阶段设置来指定目标发布阶段,但它不能正常工作。
1.在您的build pipeline中,调用上述任务,选择target release,将release变量json设置为{'RunStage' : 'dev'}(本例中dev为目标stage)。



1.在releasepipeline中,增加变量RunStage,设置为release scope,在release时可设置。

1.对于每个阶段中的作业,在条件表达式中为agent job级别设置条件:dev for dev stage,test for test stage。



1.运行你的构建,它将触发目标版本,只有开发阶段的作业将被执行,测试,生产阶段的其他作业将被跳过。

也可以使用YAML编辑器进行发布管道,可以在阶段级设置条件,步骤类似,具体如下:
1.在触发Azure DevOps Pipeline任务中更改为触发build,因为版本为yaml。
1.添加变量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

字符串

  • 运行构建,它将触发yaml发布,并传输变量值。只有开发阶段作业将被执行。

相关问题