【问题标题】:When the "pull request trigger" on the build artifact is disabled, Why is build due to a PR (build validation policy) triggering a release?当构建工件上的“拉取请求触发器”被禁用时,为什么由于 PR(构建验证策略)触发发布而构建?
【发布时间】:2020-08-11 22:47:26
【问题描述】:

在我的发布管道中,我配置了构建工件。启用“持续部署触发器”(未添加任何分支过滤器)并禁用“拉取请求触发器”。现在,当我提出 PR 时,PR 会触发构建(因为我还在分支策略中配置了构建验证)。

一旦构建完成,就会触发发布。为什么当我禁用“拉取请求触发器”时会发生这种情况?为什么构建工件上的“拉取请求触发器”被禁用时,由于 PR 触发发布而构建?

只有当我在“持续部署触发器”中添加分支过滤器时,才会阻止在 PR 完成之前触发发布。

【问题讨论】:

    标签: azure azure-devops azure-pipelines azure-pipelines-release-pipeline


    【解决方案1】:

    这里我会恢复你的场景并添加一些截图来说明它。

    首先我们需要了解持续部署触发器的definition

    这指示 Azure Pipelines 自动创建新版本 当它检测到有新的工件可用时。

    因为你设置了pr build vaildation policy,当pr被创建时,会自动触发pr build。

    此时这个pr build相当于生成了一个新的可用神器,会自动触发发布。

    本次发布其实是Continuous deployment trigger造成的,不是Pull request trigger造成的。

    【讨论】:

    • 我们该如何解决呢?我需要使用相同的 CI 管道进行构建验证检查,但由于正在生成人工制品,因此在 PR 获得批准之前也会触发发布管道。
    【解决方案2】:

    这是预期的行为,如果您将 CD 配置到任何分支,那么在构建完成后发布就会开始,无论构建是否被拉取请求排队。

    如果您想在 PR 的一部分中上传工件,您应该禁用 CD 触发器或使用工件过滤器。

    请阅读herehere PR 触发器文档。

    【讨论】:

    • 我没有配置“CD 到任何分支”。我已配置为构建工件
    • 你说“启用了 cd 触发器”
    • 在构建工件上启用触发器。不在 azure repo 上。如果这有意义的话。
    • 在发布管道中,您是否启用了继续部署触发器?
    • 是的构建工件。
    猜你喜欢
    • 1970-01-01
    • 2013-12-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 2018-09-20
    • 1970-01-01
    • 2016-04-06
    • 1970-01-01
    相关资源
    最近更新 更多