【问题标题】:Teamcity - Perform Git Fetch for Agent-Side CheckoutTeamcity - 为代理端结账执行 Git Fetch
【发布时间】:2016-07-26 03:58:57
【问题描述】:

我正在尝试从我的构建代理执行完整的git fetch,以便在 TeamCity 中使用GitVersion

根据http://gitversion.readthedocs.io/en/latest/build-server-support/build-server/teamcity/#agent-checkout,我已选择在 TeamCity 中使用代理结帐选项

但是,当我在代理上执行结帐时,我无法获取分支的完整 git 历史记录。我得到与此相同的结果:https://github.com/GitTools/GitVersion/issues/912 - 具体来说:

System.InvalidOperationException:在本地和远程都找不到“开发”或“主”分支。

我的猜测是,这是因为 TeamCity 只检查了回购历史的一个子集。

Github 问题有一个解决方法,即在每次构建开始时执行 git fetch 命令。这是 TeamCity 可以作为 VCS 根的一部分本机支持的东西吗?

提前致谢

【问题讨论】:

  • 有人解决这个问题了吗?是的,我正在指定 /output buildserver 选项。它永远不会发生在原始构建服务器上,只会发生在我刚刚启动的新构建代理上。如果重要的话,原来的那个和 TeamCity 在同一台机器上运行。如果重要的话,运行 Team City 版本 2017.2.3(内部版本 51047)。
  • 如果我去那个构建目录并输入 git fetch --all 然后运行 ​​gitversion 它可以正常工作,但是,因为我们在新构建中删除了文件夹,这并不能解决问题- 除非我们想将它作为构建步骤添加到我们拥有的每个项目中!显然,另一个构建服务器有这个所缺少的东西。
  • 在新的构建服务器上运行最新的 gitversion: 4.0.0+Branch.master.Sha.e715eb5dd515037d90a257f527e62442cae8c1c5 。在旧的构建服务器上,它是 /version 工作之前的版本。
  • 根据 Chocolatey(choco 版本 gitversion),它们都是 1.0.0.1,所以很明显,它们功能不同的事实很奇怪..

标签: teamcity gitversion


【解决方案1】:

自 v2017 以来,TeamCity 能够获取所有头像 TeamCity,但需要通过配置设置启用。

您可以配置 Git-plugin 以通过adding a build configuration parameter 获取所有头:

teamcity.git.fetchAllHeads=true.

更多详情请看这里:

【讨论】:

    【解决方案2】:

    您能否显示在 TeamCity 上运行时传递给 GitVersion 的命令行参数?您是否指定/output buildserver 选项?启用此功能后,GitVersion 会执行分支规范化过程,以确保从存储库中获取所有必需的分支。

    【讨论】:

    • 实际上,这是我所描述的部分内容。规范化过程是为了确保所有 git 信息在本地可用,以便可以断言正确的版本号。
    • 我很困惑,我尝试添加一个构建步骤来执行 git fetch --all (它尝试弹出登录提示以获取凭据,所以它无法工作 - 不知道如何修复它),但是如果我转到构建失败的构建目录并在那里运行 gitversion,我会收到错误消息。如果我然后运行 ​​git fetch --all,那么 gitversion 就可以了。我该如何解决这个问题才能正常工作? (此时打开 any 修复 - 我有 20 个构建配置失败,一个有效(它不使用 gitversion,因为在不签入更改的情况下无法重建,所以我放弃了它适用于我的构建)
    • 所以,是的,在运行 gitversion /output buildserver 之后,我可以看到我有分支 x 和 remote/x 作为唯一的分支。如果我 git fetch --all,那么我会看到分支 x,以及 remote/x,remote/y,remote/z..(很多很多)。所以看起来 getversion /output buildserver 没有获取任何东西,我需要别的东西来踢它?
    猜你喜欢
    • 2014-07-17
    • 2010-11-08
    • 2017-04-01
    • 2013-02-12
    • 2012-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-01
    相关资源
    最近更新 更多