gpt4 book ai didi

git - 在 CI 服务器中构建 merge 请求

转载 作者:IT王子 更新时间:2023-10-29 01:27:50 28 4
gpt4 key购买 nike

我们正在使用 GitLab 来管理我们的存储库。我们正在尝试遵循 GitFlow 流程,作为其中的一部分,我们希望能够在 TeamCity 中针对任何 merge 请求自动构建和执行测试。

据我所知,这在 GitLab CI 中是可能的,但转向它对我们来说不是一个现实的选择。

我在 GitHUB 上看过有关使用 +refs/pull/*/merge 等分支规范实现此目的的教程 - GitLAB 是否创建了类似的分支规范?

我们使用的是 GitLab 4.2 版,但如果需要此功能和 TeamCity 8 版可以升级

最佳答案

我有 GitLab 6.3 和 TeamCity 8,我也需要构建功能分支。我们有以下工作流程(它基于 git-flow,但根据我们的发布周期略有更改)。

因此,我们有 development 分支和一个具有特定名称的推送功能分支 dev/feature-name-here

接下来,在 GitLab 中创建一个从 dev/feature-name-heredevelopment 的 merge 请求。

TeamCity 配置为使用以下 refspec 为每个分支自动运行构建:+:refs/heads/dev/(*) 因此我们可以看到分支 feature-name 的构建-这里是自动启动的。

接下来,我有一个嵌入到 GitLab merge 请求页面的自定义脚本。它执行以下操作。

  1. 通过查看 MR 页面检测源和目标分支
  2. 使用 TeamCity REST API 枚举属于目标分支的构建(在 TeamCity 8 中,我们可以为构建分配自定义构建配置 ID,因此我们使用一些语义命名,如 devUnitdevIntegration, devWhatever, 等等...)
  3. 创建一个表,其中包含每个相关构建配置的源分支和目标分支的构建状态图像。

现在看起来像这样:

TC Build status at GitLab

现在这种方法有一些缺点,比如如果一个人用另一个推送更新一个分支我无法从 GitLab 页面弄清楚是新的提交已经构建或者我看到旧的构建状态,所以我需 Gist 击一个构建链接并 checkin TeamCity

关于git - 在 CI 服务器中构建 merge 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19113224/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com