azure-devops - 拉取请求工作流通过与 Azure Devops 预合并来验证代码
问题描述
让我们假设我有以下构建 BFBuild。现在 BFBuild 可以构建多个可以将包推送到 nuget 提要的分支。
BFBuild
- 开发 - 版本号为 1.1.$(buildid) 的 nuget 提要
- 修补程序 - 版本号为 2.1.$(buildid) 的 nuget 提要
- 生产 - 版本号为 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 构建会增加版本,所以如果脏代码被推送,它可能会破坏很多东西。
我该如何处理这样的情况?
我能想到的两种可能的解决方案是
- 复制构建并删除推送到 nuget 提要的任务。但这是一个维护问题
- 重复使用相同的构建,但添加自定义条件何时运行特定任务。
and(succeeded(), in(variables['Build.Reason'], 'PullRequest'))
因此,如果 PR 构建触发了构建,则改为推送版本 4.4.$(buildid)。我看到的问题是,在 PR 构建之后可能会触发其他构建,并且这些构建可能会推送错误的 nuget 版本。
解决方案
推荐阅读
- c# - 通过http发送文件流不起作用
- javascript - 如何为 table.rows.cells 传递变量值以获取表格单元格值?
- python - 如何在 dask 数据帧上使用增量 PCA?
- tfs - TFS 2017 中的 JMeter CI/CD 流程
- angular - 用 GET 响应中的 json 填充 mat-table
- php - 使用 Windows 2000 之前的域名获取 Active Directory 中的用户详细信息
- android - 文档:MultipartBody.Part?值未发送到服务器
- android - 无法解决依赖关系:app@debug/compileClasspath':无法解析 io.anyline:anylinesdk:5
- python - 如果某个单词之前的两个单词来自否定列表,如何使用正则表达式不匹配模式
- javascript - 如何在不阻塞主线程的情况下运行代码(Google/Doubleclick Ads)