建造maven项目时出错 - TeamCity

时间:2018-02-01 15:54:33

标签: maven teamcity gitlab

每次我尝试使用TeamCity构建托管在gitlab服务器上的Maven项目时,我都会从buildAgent中收到错误。 TeamCity和GitLab都在同一台服务器上。

似乎代理无法连接到gitlab,但确实如此,因为当我必须在构建配置部分指定pom.xml路径时,我可以浏览存储库文件夹(http://prntscr.com/i8pyjf )。

我已尝试过不同的解决方案:

  • 我添加了root ssh和运行teamcity的ser的ssh密钥,它们似乎都有效,因为测试连接成功(http://prntscr.com/i8q0jf);
  • 我在buildAgent conf中添加了teamcity.git.use.native.ssh,并且错误日志稍有变化(错误仍然相同,但我的行数减少了)
  • 我添加了teamcity.git.use.native.ssh true作为配置参数 - > http://prntscr.com/i8pnqp(不确定我做对了)
  • 我尝试添加runAs插件以强制用户代理使用root

TeamCity版本 - > TeamCity Professional 2017.2.2(build 50909)

这里是错误日志:

[22:03:51] The build is removed from the queue to be prepared for the start
[22:03:51]  Collecting changes in 1 VCS root
[22:03:51]  [Collecting changes in 1 VCS root] VCS Root details
[22:03:51]  [VCS Root details] "git@151.80.136.106:Developer/BanlogBridge.git" {instance id=11, parent internal id=1, parent id=Ban_Git15180136106DeveloperBanlogBridgeGit, description: "git@151.80.136.106:Developer/BanlogBridge.git#master"}
[22:03:51]  [Collecting changes in 1 VCS root] Compute revision for 'git@151.80.136.106:Developer/BanlogBridge.git'
[22:03:51]  [Compute revision for 'git@151.80.136.106:Developer/BanlogBridge.git'] Upper limit revision: 0d41a12c788798152c7da9327ef63b759f7d5b4c
[22:03:51]  [Compute revision for 'git@151.80.136.106:Developer/BanlogBridge.git'] Cannot find modification with revision 0d41a12c788798152c7da9327ef63b759f7d5b4c
[22:03:51]  [Compute revision for 'git@151.80.136.106:Developer/BanlogBridge.git'] No modification from VCS root is attached to build configuration, use upper limit revision
[22:03:51]  [Compute revision for 'git@151.80.136.106:Developer/BanlogBridge.git'] Computed revision: 0d41a12c788798152c7da9327ef63b759f7d5b4c
[22:03:51]  Starting the build on the agent Default Agent
[22:03:52]  Clearing temporary directory: /usr/local/teamcity/buildAgent/temp/buildTmp
[22:03:52]  Publishing internal artifacts
[22:03:52]  [Publishing internal artifacts] Publishing 1 file using [ArtifactsCachePublisher]
[22:03:52]  [Publishing internal artifacts] Publishing 1 file using [WebPublisher]
[22:03:52]  Using vcs information from agent file: db80d9c7294729d5.xml
[22:03:52]  Checkout directory: /usr/local/teamcity/buildAgent/work/db80d9c7294729d5
[22:03:52]  Updating sources: auto checkout (on agent)
[22:03:52]  [Updating sources] Will use agent side checkout
[22:03:52]  [Updating sources] VCS Root: git@151.80.136.106:Developer/BanlogBridge.git
[22:03:52]  [VCS Root: git@151.80.136.106:Developer/BanlogBridge.git] revision: 0d41a12c788798152c7da9327ef63b759f7d5b4c
[22:03:52]  [VCS Root: git@151.80.136.106:Developer/BanlogBridge.git] Git version: 2.7.4.0
[22:03:52]  [VCS Root: git@151.80.136.106:Developer/BanlogBridge.git] Will use native ssh (teamcity.git.use.native.ssh=true)
[22:03:52]  [VCS Root: git@151.80.136.106:Developer/BanlogBridge.git] Update checkout directory (/usr/local/teamcity/buildAgent/work/db80d9c7294729d5)
[22:03:52]  [Update checkout directory (/usr/local/teamcity/buildAgent/work/db80d9c7294729d5)] /usr/bin/git config core.sparseCheckout true
[22:03:52]  [Update checkout directory (/usr/local/teamcity/buildAgent/work/db80d9c7294729d5)] /usr/bin/git show-ref
[22:03:52]  [Update checkout directory (/usr/local/teamcity/buildAgent/work/db80d9c7294729d5)] /usr/bin/git show-ref refs/remotes/origin/master
[22:03:52]  [Update checkout directory (/usr/local/teamcity/buildAgent/work/db80d9c7294729d5)] Commit '0d41a12c788798152c7da9327ef63b759f7d5b4c' is not found in local clone. Running 'git fetch'...
[22:03:52]  [Update checkout directory (/usr/local/teamcity/buildAgent/work/db80d9c7294729d5)] /usr/bin/git fetch --progress origin +refs/heads/master:refs/remotes/origin/master
[22:03:52]  [Updating sources] Failed to perform checkout on agent: '/usr/bin/git fetch --progress origin +refs/heads/master:refs/remotes/origin/master' command failed.
exit code: 128
stderr: Host key verification failed.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
[22:03:52]  Publishing internal artifacts
[22:03:52]  [Publishing internal artifacts] Publishing 1 file using [ArtifactsCachePublisher]
[22:03:52]  [Publishing internal artifacts] Publishing 1 file using [WebPublisher]
[22:03:52]  Build failed to start. Artifacts will not be published for this build
[22:03:52]  Build finished

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

这是因为TeamCity代理计算机上的已知主机数据库不包含Gitlab服务器的指纹。你可以通过ssh运行一些命令来添加它,例如git ls-remote <your repository url>,并同意在指纹正确的情况下添加指纹。

实际上,TeamCity检出已禁用已知主机数据库检查的代码。请检查TeamCity代理计算机上的.ssh/config中是否有与Gitlab相关的任何内容。