Teamcity - 所有项目的全球 VCS 根

Teamcity - Global VCS Root for all projects

我负责 7 个左右项目的 ~40 个 TeamCity 构建。目前,他们每个人都有自己的 Git 凭据,这很愚蠢,因为他们实际上都在使用相同的登录名。他们之间只有一点点不同,在那

我该如何设置才能让他们在团队城市中都使用相同的 Git 登录名,这样当这个登录名到期时,我就不必重设 30 位密码?

我知道有构建参数,我可以共享 VCS 根目录,但这些根目录似乎只对同一项目的构建可见...我看不出有什么办法可以做到这一点到 "Root" 项目。

共享 VCS 根目录

Root 项目将是设置在所有项目中继承的 VCS 根目录的地方;并且由于使用相同的登录名对主机存储库服务器进行身份验证,您也可以在该根级别简单地定义它。

要在 Root 项目中添加 VCS 根目录,请导航至:

https://{HostServer}/admin/editProject.html?projectId=_Root&tab=projectVcsRoots

然后您可以从那里单击 Create VCS root。然后,您的 TeamCity 实例中的任何构建配置都将有权附加该 VCS 根目录。创建该 VCS root 时设置登录详细信息。

参数化 VCS root

they checkout different branches

您可以参数化 Default branch 以使 VCS 根分支能够根据构建参数动态配置,这需要在子项目或配置级别提供/覆盖。例如:

%system.DefaultBranch%

作为 Default branch 值需要任何使用 VCS 根的配置来为 %system.DefaultBranch% 提供值。您可以在 Root project 级别为此参数指定一个默认值,以便在您使用 refs/heads/master.

进行大量配置时简化操作

they use a different base repos (but are on the same server)

同样,您可以参数化 Fetch URL 以使 VCS 根能够根据构建参数动态配置,这需要在子项目或配置级别提供/覆盖。例如:

git@bitbucket.org:myname/%system.GitRepositoryName%

as a Fetch URL 需要任何使用 VCS root 的配置来为 %system.GitRepositoryName% 提供值。这可以作为项目参数或构建配置参数提供。如果您有多个构建配置都使用同一个存储库 在同一个项目 下,那么最好使用项目参数方法。