【问题标题】:Unable to trigger pull request release in Azure DevOps无法在 Azure DevOps 中触发拉取请求发布
【发布时间】:2019-06-26 16:54:14
【问题描述】:

我已经通过以下方式设置了拉取请求释放触发器。

每当拉入该分支的请求成功完成时,我想从VerifyApiTestEnvironment 分支部署工件。

这就是我的工件的外观。

这就是我的 CD 触发器的样子。

这就是我的部署前条件。

这就是我的策略屏幕的外观。

这就是我的分支结构的样子。当我完成针对VerifyApiTestEnvironment 分支的拉取请求时,我总是在构建中收到一个错误,说源分支缺少来自 master 的更改。这可能是什么原因?

每次我将更改提交到featureBranch,然后我打开一个拉取请求以将其合并到VerifyApiTestEnvironment 分支。 我希望每次执行此操作时都会触发发布和部署,但没有触发发布。

我是否遗漏了与配置 PR 触发器相关的内容?

【问题讨论】:

  • 该构建是否配置为您的分支策略上的验证构建?此外,您设置的内容将在 PR 创建时部署,而不是在它完成时部署。
  • @DanielMann 编辑了我的问题以包含与此相关的屏幕截图。当 PR 完成.时,如何设置它以进行部署

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


【解决方案1】:

你的设置有问题。正如丹尼尔所说,它用于设置为部署并创建 PR。另外,如果你想在 PR 完成后立即部署,那么这个版本的来源应该是 Repository 而不是 build pipeline。

因此,首先,您需要将发布源更改为 Azure 存储库

然后,启用持续部署触发器。当 PR 完成时,这意味着代码更改被合并到 Repository 的目标分支中。所以,这个需要开启,否则 PR 完成时不会触发部署。

另外,你需要设置分支过滤器,否则无论更改哪个分支都会触发部署。这里我设置只是合并到master分支(PR目标分支是master)可以触发这张CD。

对于此选项,它仅用于 PR 创建的触发器部署。由于您只想完成由 PR 触发的部署,因此您不需要启用它。

现在,如果你的主人有策略,只有在 PR 创建和验证后才能成功应用代码更改,那么 CD 将仅在 PR 完成后执行。

对于某些策略配置,build policy用于设置构建触发,status policy用于触发发布。

因此,根据您的策略设置,它用于先触发构建,然后构建将触发发布。不是 PR 完成后直接触发部署。

【讨论】:

  • 感谢您的指导!现在,触发器按预期工作。但是,面对一个问题,我的构建一直没有说合并没有主更改。我已更新问题以包含我的仓库的图像。你知道为什么会这样吗?
  • 你能分享你问题中的错误截图吗?完成 PR 时选择哪种合并类型?
  • 我使用的是 Merge(no fast-forward) 类型。
  • 它是如此有线。构建时是否显示错误消息?完成pr后?那么,能不能成功完成pr呢?
  • 是的,在我完成 PR 后,由于构建失败,在这种情况下 PR 不成功。
猜你喜欢
  • 2020-01-25
  • 1970-01-01
  • 2021-03-29
  • 2020-04-16
  • 1970-01-01
  • 2020-06-25
  • 1970-01-01
  • 2018-07-16
  • 2020-03-15
相关资源
最近更新 更多