HowTo:Teamcity + GitHub

时间:2009-04-28 09:52:12

标签: continuous-integration ssh teamcity github

是否有人成功配置Teamcity来监控,提取和构建GitHub?

我似乎无法确定如何为Teamcity配置SSH密钥的位置和方式。我在系统帐户下运行Teamcity作为系统服务。那么Teamcity在哪里存储它的SSH配置呢?

修改

为了实现这一点,我需要阻止代理在系统帐户下运行。

8 个答案:

答案 0 :(得分:27)

好的......我开始在我的Windows服务器上工作了。以下是我配置TeamCity 4.5 Professional的步骤:

  1. 下载了JetBrains Git VCS Plugin
  2. 将下载的zip文件复制到.BuildServer\plugins
  3. 在管理中>编辑构建配置>编辑VCS Root配置屏幕,我选择了“Git(JetBrains)”
  4. 从GitHub项目页面输入我的克隆网址
  5. 设置身份验证方法“默认私钥” - 这是重要的
    1. TeamCity BuildAgent应作为标准用户运行,并为该用户正确配置SSH安装。
    2. 关注GitHub SSH directions for SSH configuration
  6. 将用户名留空。这应该已经在您的GitHub克隆URL
  7. 中提供

答案 1 :(得分:7)

我使用“默认私钥”来与在Windows上作为SYSTEM用户运行的代理一起使用。对我来说,答案是在

处拥有身份文件

C:\Windows\SysWOW64\config\systemprofile\.ssh\id_rsa

而不是

C:\Windows\System32\config\systemprofile\.ssh\id_rsa

答案 2 :(得分:4)

您的问题特定于SSH,但使用HTTP over TLS肯定更容易,更快,因为GitHub和TeamCity现在都支持HTTP身份验证。此外,GitHub还支持具有有限权限的personal api tokens,您可以根据自己的喜好进行配置,或者根据需要创建新用户。

请参阅我们的TeamCity设置下面的图片。

Teamcity configuration

答案 3 :(得分:2)

自TeamCity 8.1以来,对SSH密钥管理有官方支持,请阅读以下文档:https://confluence.jetbrains.com/display/TCD9/SSH+Keys+Management

答案 4 :(得分:1)

对于私钥,用户名必须为空。

答案 5 :(得分:1)

(这是旧问题的最新答案)

我使用基于ssh的构建与github / gitlab和teamcity 7一起工作:

登录teamcity机器并使用puttygen / ssh-keygen生成一个rsa密钥对,并将openssh密钥保存在合理的位置。 (Gotcha - 使用puttygen?确保私钥是openssh格式 - puttygen>转换>导出openssh密钥)

我建议您将私钥保存在

C:\.ssh\id_rsa

现在在teamcity中设置“默认私钥” - 创建文件

C:\.ssh\config

并在其中放置:

Host * IdentityFile c:\.ssh\id_rsa

登录您的gitlab / guthub帐户并粘贴您的teamcity私钥的openssh公钥。

您现在应该可以在teamcity中创建一个git vcs root,它可以使用默认私钥来提取源。

答案 6 :(得分:0)

您可能需要第三方插件,例如this

答案 7 :(得分:0)

我不知道为什么,但选择Default Private Key对我失败了。

然后我选择Custom Private Key作为下面的屏幕截图: enter image description here

Username字段必须为空。

Passphrase字段是您的私钥的密码

(假设你已经在git中添加了这个私钥的公钥。)

希望没有人像我一样被卡住!