azure-devops - Azure DevOps : how to trigger a release upon pull request being completed?

标签 azure-devops continuous-integration nuget continuous-delivery

我有一个 repo,它有两个分支:

  • 开发(repo 的默认分支)
  • 大师

  • 众所周知,develop 分支中的代码可作为“alpha”版本发布,而 master 中的代码已知可用于生产。

    目前,开发分支的策略要求必须成功完成 CI 构建才能合并 PR。该构建将创建带有预发布标记 (alpha-####) 的 NuGet 包工件。

    发布管道负责获取这些包并将它们发布到内部 NuGet 源。

    我想要实现的是让发布管道自动触发 PR完成后 ,而不是每当 CI 构建成功时。

    我希望“拉取请求触发器”能做到这一点,但令我惊讶的是,触发器不会确认 PR 的状态,并且在 CI 构建完成后立即启动发布管道。

    这意味着如果 PR 因任何原因被拒绝,NuGet 仍可能部署到我的提要!

    我在这里做错了什么?为什么拉取请求触发器与持续部署触发器的工作方式没有任何不同?那它的目的是什么? :/

    最佳答案

    持续部署触发器意味着,如果您在发布管道中指定某些类型的工件,则可以启用持续部署。这会指示 Azure Pipeline 在检测到新工件可用时自动创建新版本。

    拉取请求触发器意味着,一旦配置了拉取请求发布,无论何时为 protected 分支提出拉取请求,都会自动触发发布,并将其部署到指定的环境。

    所以这两个触发器是不同的,更详细的信息你可以引用这里。
    https://docs.microsoft.com/en-us/azure/devops/pipelines/release/deploy-pull-request-builds?view=azure-devops

    https://docs.microsoft.com/en-us/azure/devops/pipelines/release/triggers?view=azure-devops

    如果您在 PR 完成后仍想部署 Nuget,我建议您创建一个新的构建管道并为其启用持续集成。然后将此构建管道设置为发布管道工件。
    因为当一个 PR 完成时,它会创建一个新的提交到目标分支,这个新提交将触发构建管道,构建管道将触发发布管道以按预期部署 Nuget。

    关于azure-devops - Azure DevOps : how to trigger a release upon pull request being completed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58089501/

    相关文章:

    azure - 任何人都可以帮助我如何通过 vsts 停止和启动 azure webjobs?

    Azure 开发运营 : work item type rules triggered by Board Column

    continuous-integration - GitLab CI 无法安装/使用 PhantomJS

    jenkins - Jenkins 工作目录位于何处?

    nuget - 可以使用 XDT 转换 nuget 包中的自定义 xml 吗?

    nuget - 如何在 Inno Setup 安装程序中捆绑来自 NuGet 包的仅运行时依赖项?

    powershell - 术语 'powershell.exe' 未被识别为 VSTS 任务中的 cmdlet 名称

    Azure DevOps - 发布管道任务引发 Http 超时异常

    amazon-web-services - AWS、Packer、Vagrant 和 Chef 它们如何协同工作?

    c# - 如何排除某些 View 和文件夹不包含在已部署的 ASP.NET MVC NuGet 包中?