首页 > 解决方案 > 拉取请求工作流通过与 Azure Devops 预合并来验证代码

问题描述

让我们假设我有以下构建 BFBuild。现在 BFBuild 可以构建多个可以将包推送到 nuget 提要的分支。

BFBuild

  1. 开发 - 版本号为 1.1.$(buildid) 的 nuget 提要
  2. 修补程序 - 版本号为 2.1.$(buildid) 的 nuget 提要
  3. 生产 - 版本号为 3.1.$(buildid) 的 nuget 提要

BFBuild构建修补程序分支构建完成触发器启动其他构建。

所有这些构建也将推送到他们自己的 nuget 包中,但在这种情况下使用相同的版本 2.1.$(buildid)

例子

- BFBuild
    - hotfix pushed to 2.1.$(buildid)
    Triggers
     - BFBuild 1
        - hotfix pushed to 2.1.$(buildid)
     - BFBuild 2
        - hotfix pushed to 2.1.$(buildid)

代码将始终获取最新的包。

当尝试通过预合并和构建拉取请求更改来验证代码时,就会出现问题。PR 构建会增加版本,所以如果脏代码被推送,它可能会破坏很多东西。

我该如何处理这样的情况?

我能想到的两种可能的解决方案是

  1. 复制构建并删除推送到 nuget 提要的任务。但这是一个维护问题
  2. 重复使用相同的构建,但添加自定义条件何时运行特定任务。and(succeeded(), in(variables['Build.Reason'], 'PullRequest')) 因此,如果 PR 构建触发了构建,则改为推送版本 4.4.$(buildid)。我看到的问题是,在 PR 构建之后可能会触发其他构建,并且这些构建可能会推送错误的 nuget 版本。

标签: azure-devopspull-request

解决方案


推荐阅读