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%
设置
设置 | 描述 |
---|---|
URL | 以下格式的服务器 URL :
|
根目录 | 使用以下格式指定根目录: |
用户名 | 指定一个用户来访问 Azure DevOps Server。 这可以是用户名或 将此字段留空,以让 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
环境变量 ,然后重启他们以应用更改。
示例:
HTTP 代理服务器配置
默认的 .NET 工作模式
要与 Azure DevOps Server 进行交互,将使用为运行 TeamCity 服务器或代理的用户帐户指定的代理服务器设置。
跨平台工作模式
在 Azure DevOps 集成中,将使用为 TeamCity 服务器或代理指定的默认 Java 代理服务器设置。 在 TeamCity 服务器上,可以使用 内部属性或 Java 选项。 在 TeamCity 代理上,可以使用 构建代理配置 或 Java 选项。 TeamCity-TFS 集成支持以下选项: