我目前正在通过其构建代理使用 Mircosofts Team Foundation Server 作为构建服务器。
我知道它确实提供了一个 REST-API,您可以在其中启动并查看构建等等。
但是是否有可能使用 TFS 中的构建代理来创建构建,就像提交某些内容时所做的那样,而无需将源代码提交到存储库中?
我开发移动应用程序,每次都需要创建一个 .apk(例如)来测试 native 功能。这是通过 TFS 在 checkin 时完成的,但如果我正在测试某些内容,那么我需要每两分钟 checkin 一次,而这是不可能的。
我需要某种调用,我可以通过命令行/工具发送某种 zip 文件或其他文件,并使用其中的文件启动 TFS 构建代理。
而且我不想为不同的任务提供两个构建服务,也不想在本地计算机上安装某些东西(在公司中)。
TFS 提供这样的功能吗? 或者说你会如何满足这种要求?
最佳答案
当您使用 TFVC 时
您可以对所谓的“伙伴构建”或“使用架子集构建”进行排队。您可以搁置本地更改并将构建排队,该构建将自动将您的更改应用到源代码管理中的当前最新版本。这将在标准构建服务器上运行构建,但不需要您 checkin 更改。
一旦满意,请 checkin 代码或使用“如果构建成功则 checkin ”选项对好友构建进行排队。
如果您不使用 XAML 构建,则可以使用 TFS 2015 和 VS Team Services 中的新构建来完成同样的事情。
您可以通过几个命令行命令 (XAML) 自动执行该过程。
tf vc shelve /replace "My local changes"
tfsbuild /start /collection:https://server/tfs/DefaultCollection MyProject MyDefinition
/shelveset:"My local changes" /queue /getoption:latestonbuild
/droplocation:\\your\private\drop\location
我认为没有办法使用新构建引擎的现有 TFX 命令行工具来对带有架子集的构建进行排队,but it is possible using a little bit of PowerShell to invoke the REST API 。将 "My Local Changes";yourusername
作为 sourceBranch
传递。
当您使用 Git 时
您可以创建一个用户分支并将其推送到服务器。提交/推送到您自己的个人分支应该不会造成任何问题,并且您可以选择在将用户分支与功能分支合并之前对其进行 rebase /重组。
要从命令行构建,您需要使用 git 可执行文件来提交和推送(如果您授予用户在自己的分支上强制推送的权限,那么您可以使用 amend
和 强制
:
git commit -m "Testing local changes" [--amend]
git push -u [--force] origin/user/me/testing
您的构建将配置为在您的用户分支或所有用户上触发:
您可以使用通配符指定分支过滤器,在这种情况下,构建将为您在用户“下”创建的任何分支触发。
为了更加方便,您可以授予用户重写他们自己的分支的权限:
这使得该过程几乎与 TFVC 解决方案一样轻量。而且您仍然只需要一个构建定义来验证所有用户的分支。
关于tfs - Microsoft TFS 在没有 VCS 的情况下创建构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38128243/