TeamCity 参数化 VCS 密码

5

我正在运行TeamCity 9x,似乎它不支持VCS密码参数,这意味着我必须使用SSH密钥(证明很困难,但那是一个不同的问题),或者为每个构建配置输入密码,这是不可接受的,因为我们最终将拥有超过100个构建配置,所以更改密码将会非常麻烦。

是否有一种方法可以指定一次密码并将其注入到每个VCS根中?


你使用的版本控制系统是什么? - sferencik
Git -> 在内部托管的GitLab上 - Myles McDonnell
1
我认为你可能需要使用SSH。例如,Perforce有一种替代机制(p4tickets),但我不认为Git有相应的机制。 - sferencik
1
我感同身受。在我的VCS配置中,几乎所有东西都被参数化了,但是密码字段拒绝接受像 %my_pass% 这样的内容。有些矛盾的是,TeamCity允许您创建一个类型为“密码”的输入参数 %my_pass%,但是却不允许您在期望密码的字段中使用它。在我的情况下,我想把密码值参数化,以便其他项目可以继承“主模板”,其中包含此参数化的VCS根,并且可以轻松地在“参数”页面上覆盖存储库位置以及git用户和密码(无需再次处理VCS根页面)。 - donhector
1个回答

6

虽然有点折中的解决方法,但仍旧可行。

你可以尝试参数化其他版本控制系统(VCS)根详细信息!

创建一个VCS根,提供用户名/密码,使用标准的Teamcity参数对任何你想要的进行参数化。然后,有几种可能的使用参数的方法:

  • 为每个构建提供参数作为默认值;
  • 在构建运行时要求输入参数值(适用于手动构建);
  • 提供几个已预置参数的构建模板。

例如,在我当前的项目中,我们使用带有分支名称参数化的Git VCS根。所有使用该VCS根的构建都有分支名称设置在其默认参数中,或者使用从运行菜单提供的值。


这就是我们所做的。除非你打算拥有100个密码,否则这是正确的方法。但根据我的经验,构建服务器只需要一个账户来访问版本控制系统,因此你可以创建一个单一的、模板化的版本控制系统根节点。 - Jack Ukleja

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接