Azure DevOps Pipelines - PR 仅触发 运行 一个阶段,完成后继续
Azure DevOps Pipelines - PR trigger only run one stage, after complete continue
我的 .NET 应用程序有一个 azure-pipelines.yaml
Pipeline A
,分 3 个阶段。
Stage 1: Restore, Build, Unit test, Publish artifact
Stage 2: Consume artifact, build Docker image, push it to Artifact
Repository
Stage 3: Perform bash script
这与正常的持续集成触发器一起工作正常,但现在我也想添加 PR 触发器。
是否可以仅执行Stage 1
(仅恢复、构建、单元测试、发布工件)与 PR然后将其“搁置”直到 PR 完成。完成后,继续 Stage 2
并使用已发布的工件并继续构建 docker 图像等?
还是我最好设置一个全新的管道?
感谢您的指导!
这是不可能的。但是恕我直言,您不需要这个。您需要做的就是 运行 PR 触发器的第一阶段,以验证您的代码状态。然后当它到达主分支时,CI 触发器会重新启动并 运行 所有阶段。
要将第一阶段限制为 PR 触发,您需要在阶段级别使用此条件:
and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
请将此添加到第二和第三阶段。
我的 .NET 应用程序有一个 azure-pipelines.yaml
Pipeline A
,分 3 个阶段。
Stage 1: Restore, Build, Unit test, Publish artifact
Stage 2: Consume artifact, build Docker image, push it to Artifact Repository
Stage 3: Perform bash script
这与正常的持续集成触发器一起工作正常,但现在我也想添加 PR 触发器。
是否可以仅执行Stage 1
(仅恢复、构建、单元测试、发布工件)与 PR然后将其“搁置”直到 PR 完成。完成后,继续 Stage 2
并使用已发布的工件并继续构建 docker 图像等?
还是我最好设置一个全新的管道?
感谢您的指导!
这是不可能的。但是恕我直言,您不需要这个。您需要做的就是 运行 PR 触发器的第一阶段,以验证您的代码状态。然后当它到达主分支时,CI 触发器会重新启动并 运行 所有阶段。
要将第一阶段限制为 PR 触发,您需要在阶段级别使用此条件:
and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
请将此添加到第二和第三阶段。