配置 Jenkins CI 构建以使用 Azure DevOps 中托管的 TFVC

Configure Jenkins CI build to use TFVC hosted in Azure DevOps

我们最近从本地 TFS 服务器迁移到 Azure DevOps。我们的团队使用 TFVC 进行源代码控制,当 Jenkins 轮询新签入时出现以下异常:

FATAL: This server requires federated authentication but no mechanism was available to handle it. com.microsoft.tfs.core.exceptions.TFSFederatedAuthException: This server requires federated authentication but no mechanism was available to handle it.

鉴于异常 class 名称是 TFSFederatedAuthException 我怀疑 Azure 期待某种 OAuth 集成,但 Jenkins 似乎不支持 TFVC。

我所做的只是将 Jenkins 构建的 集合 URL 更改为 https://dev.azure.com/MyCompany项目路径保持不变,我验证了这一点,因为我能够通过指向不同的集合[=来重新映射Visual Studio中的所有TFVC分支42=] 并保持相同的项目路径。下面是 Jenkins 源代码控制配置的屏幕截图:

此 Jenkins 服务器是内部服务器,没有 public 面向 IP 地址或主机名。

如何允许 Jenkins 轮询 Azure DevOps 中托管的 TFVC 存储库以触发 Jenkins 中的 CI 构建?


为什么不使用 Azure 管道?目前这是一个更大的迁移工作,我只是想解决一个短期问题。

使用 Azure 管道是我的长期目标,但我需要先弄清楚我们的自动化测试如何使用 Oracle 数据库,因为在使用 Selenium 执行每个测试之前会删除所有数据。

Azure DevOps 默认使用 OAuth 进行通信,因此输入用户名和密码将不起作用。相反,诀窍是生成个人访问令牌(我怀疑 Code|Read+Write 范围应该这样做)并将其传入。

输入 . 的用户名,输入您生成的个人访问令牌的密码。给令牌起一个好听的名字,这样您在收到电子邮件通知后就知道哪个令牌即将过期。