如何在 Azure Pipelines 中手动触发单个作业?

Tob*_*ayn 6 continuous-integration azure devops azure-devops azure-pipelines

我有一个包含两个阶段的简单 Azure Pipeline:

  • 阶段 1:构建
  • 阶段 2:运行测试

第 1 阶段构建源代码并将二进制文件推送到 Azure Artifacts。第 2 阶段下载第 1 阶段的二进制文件并针对它们运行多个测试,对不同的测试使用不同的作业:

  • 作业 1:运行模块 A 的测试
  • 作业 2:为模块 B 运行测试
  • 作业 3:运行模块 C 的测试

这些作业彼此完全独立并并行运行。

如果所有阶段和作业都成功,如何在不再次触发阶段 2 的阶段 1 和作业 1 和 2 的情况下手动触发阶段 2 中的作业 3

一个丑陋的解决方法可能是使用变量并以某种方式运行新管道,如果设置了变量,则跳过第 1 阶段并从前一个管道下载二进制文件。有更好的方法吗?

编辑:ms dev 社区上有一个类似的话题:https : //developercommunity.visualstudio.com/idea/697467/manually-triggered-stages-in-yaml-multi-stage-pipe.html?childToView=903723#comment -903723

Eri*_*ith 2

如果您将当前第 2 阶段中存在的各个作业拉到它们自己的独立阶段中,您就可以使用多阶段管道完成您想要的操作。

完成此操作后,您可以独立手动触发它们以重新运行。 在此输入图像描述

或者,如果您有需要,您也可以仅使用部分阶段来开始新的运行。 在此输入图像描述