TeamCity On-Premises 2024.03 Help

Team Foundation 版本控制(Azure DevOps)

托管在 Azure DevOps 上的项目可以使用以下任一版本控制系统:

  • Git—— 一个由 Linus Torvalds 最初编写的开源分布式版本控制系统。 为了将 TeamCity 与 Azure DevOps 上的 Git 仓库连接, 请设置 Azure DevOps OAuth 连接。 请查看本文,了解所有目标是 VCS 根 的 Git 仓库的共有特性的更多信息:Git

  • Team Foundation Version Control (TFVC)—— 是一个专属于 Azure DevOps 的版本控制系统,以前被称为 Team Foundation Server (TFS) 和 Visual Studio Team System。 TeamCity 通过 Azure DevOps PAT 连接 与 TFVC 仓库进行通信。

这篇文章仅专注于 TFVC 仓库。

跨平台 Azure DevOps 集成

TeamCity 与 Azure DevOps 的集成可以在 Windows 、 Linux 和 macOS 上运行。 TeamCity 服务器和构建代理可以与 Team Foundation Servers 2012 或更高版本以及 Azure DevOps Services 直接进行交互。

对于这种类型的 VCS root ,有两种可用的操作模式:默认模式和跨平台模式。 如果 Azure 服务器上存在 Team Explorer,那么 TeamCity 将使用默认模式。 否则,它将切换到跨平台模式。在检测 Team Explorer 版本时,TeamCity 检查 .NET GAC 和以下路径:

  • Windows x86:%CommonProgramFiles%\Microsoft Shared\Azure DevOps Server\%version_number%

  • Windows x64: %\CommonProgramFiles(x86)%\Microsoft Shared\Azure DevOps Server\%version_number%

为了执行跨平台模式,设置 teamcity.tfs.mode=java 内部属性构建配置参数

设置

设置

描述

URL

以下格式的服务器 URL :

  • Azure DevOps Services: https://dev.azure.com/<organization>

  • Azure DevOps Server: http[s]://<主机>:<端口>/tfs/<集合>

  • VSTS: https://<accountname>.visualstudio.com

  • TFS 2005/2008: http [s]://<主机>:<端口>

根目录

使用以下格式指定根目录: $<project_name><project_catalog>

用户名

指定一个用户来访问 Azure DevOps Server。 这可以是用户名或 DOMAIN\UserName 字符串。

将此字段留空,以让 Azure DevOps 选择用于运行 TeamCity 服务器(或用于代理方检出的 Agent)的用户帐户。

密码

输入用户的密码。

代理端签出

代理端签出(agent-side checkout) 支持在 Windows、Linux 和 macOS 代理机器上运行。

TeamCity 会为每个 checkout directory 自动创建一个 Azure DevOps 工作空间。 工作空间是代表在 VCS 根设置中指定帐户的用户创建的。

默认情况下,创建的 Azure DevOps 工作区使用在 TFS 服务器设置中定义的位置。 您可以通过设定 构建配置参数 teamcity.tfs.workspace.location本地服务器 ,强制 TeamCity 使用特定的工作空间位置。

根据通过 teamcity.tfs.workspace.idleTime 构建代理属性 设置的超时配置,默认值为1209600秒(2周),创建的 Azure DevOps 工作区将自动被移除。

设置

描述

强制覆盖所有文件。

当启用此选项时,TeamCity 将调用 Azure DevOps 更新工作区,重写所有文件。

通常,无需对每个构建执行强制更新。 如果您怀疑 TeamCity 没有从代码库获取到最新版本,您可以使用此选项。

Azure DevOps 不允许在一台机器上将多个工作空间映射到同一目录。 如果发生这种情况,TeamCity Azure DevOps 代理端检出会尝试移除交叉的工作区,以创建一个符合指定的 VCS 根和检出规则的新工作区。
请注意,它可能无法移除由其他用户创建的工作区。 在这种情况下,您需要手动删除这样的工作区。

为了区分本地映射,建议在以下格式中使用 checkout 规则:

  • $/root1 => /root1

  • $/root2 => /root2

Azure DevOps 中的身份验证

Azure DevOps 自2020年3月2日起停止支持备用凭证。 当前,只提供通过个人访问令牌进行身份验证的方式。

个人访问令牌可以在您的 Azure DevOps 帐户的 相应部分 发布。 将即将从 TeamCity 访问的存储库中的 Code 访问范围设置为 All scopes

令牌发出后,将其复制粘贴到您的 VCS 根设置的 密码 字段中。 将 Username 字段留空 —— 如果您还在使用仍支持通过常规用户名 / 密码凭据对 TFVC 仓库进行身份验证的旧版 Azure DevOps,那么您应该仅在此情况下指定用户名。

NTLM / Kerberos 在 Linux 和 macOS 上

要使用这种身份验证方法,请检查您的机器是否包含 Kerberos 库,并且身份验证是否正确配置。 如果您遇到任何问题,请按照 Microsoft documentation 描述的步骤进行检查。

Azure DevOps 代理配置

为了启用 Azure DevOps Proxy 的使用,为运行 TeamCity 服务器或代理的用户帐户定义 TFSPROXY 环境变量 ,然后重启他们以应用更改。

示例:

TFSPROXY=https://tfs-proxy:8081

HTTP 代理服务器配置

默认的 .NET 工作模式

要与 Azure DevOps Server 进行交互,将使用为运行 TeamCity 服务器或代理的用户帐户指定的代理服务器设置。

跨平台工作模式

在 Azure DevOps 集成中,将使用为 TeamCity 服务器或代理指定的默认 Java 代理服务器设置。 在 TeamCity 服务器上,可以使用 内部属性或 Java 选项。 在 TeamCity 代理上,可以使用 构建代理配置Java 选项。 TeamCity-TFS 集成支持以下选项:

http.proxyHost http.proxyPort http.nonProxyHosts https.proxyHost https.proxyPort http.proxyUser http.proxyPassword
最后修改日期: 16日 7月 2024年