【问题标题】:Microsoft TFS Create a build without VCSMicrosoft TFS 创建没有 VCS 的构建
【发布时间】:2016-11-02 20:27:27
【问题描述】:

我目前通过他们的构建代理使用 Mircosofts Team Foundation Server 作为构建服务器。

我知道它确实提供了一个 REST-API,您可以在其中开始并查看构建等等。

但是有没有可能使用来自 TFS 的构建代理来创建构建,就像它在提交某些内容时所做的那样,而无需将源提交到存储库中?

我为移动设备开发应用程序,每次我都需要创建一个 .apk(例如)来测试本机功能。这是在签入时通过 TFS 完成的,但如果我正在测试某些东西,那么我需要每隔两分钟签入一次,这是不可能的。

我需要某种调用,我可以通过命令行/工具发送某种 zip 文件或其他东西,并使用其中的文件启动 TFS 构建代理。

而且我不想为不同的任务提供两个构建服务,也不想在本地机器上安装一些东西(它在公司里)。

TFS 是否提供这样的功能? 或者您将如何解决此类要求?

【问题讨论】:

  • 我认为在我看来,使用 API 调用触发构建似乎是满足您目的的最佳选择。如果您想在该分支而不是主分支上排队构建,您还可以选择用户分支。您能否详细说明“就像提交某事时所做的一样”是什么意思?
  • 问题是构建总是使用存储库作为源,我不想使用存储库并在 zip 文件或其他东西上使用构建代理。但似乎不可能。
  • 如果您使用的是 Update 2 +,您可以查看 Release 选项卡。它没有附加到版本的源代码(与构建类似的概念)

标签: tfs build azure-devops tfsbuild build-server


【解决方案1】:

当您使用 TFVC 时

您可以将所谓的“伙伴构建”或“使用搁置集构建”排队。您将搁置本地更改并将构建排队,该构建将自动将您的更改应用到源代码控制中的当前最新版本。这将在标准构建服务器上运行构建,但不需要您签入更改。

一旦满意,请签入代码或使用“如果构建成功则签入”选项将伙伴构建排队。

如果您不使用 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

我认为没有办法使用新构建引擎but it is possible using a little bit of PowerShell to invoke the REST API 的现有 TFX 命令行工具将构建与搁置集进行排队。将"My Local Changes";yourusername 传递为sourceBranch

当你使用 Git 时

您可以创建一个用户分支并将其推送到服务器。提交/推送到您自己的个人分支应该不会造成任何问题,并且您可以选择在将用户分支与功能分支合并之前对其进行变基/重组。

要从命令行构建,您可以使用 git 可执行文件来提交和推送(如果您授予用户在他们自己的分支上强制推送的权限,那么您可以使用 amendforce

git commit -m "Testing local changes" [--amend]
git push -u [--force] origin/user/me/testing

您的构建将被配置为在您的用户分支上触发或为所有用户触发:

您可以使用通配符指定分支过滤器,在这种情况下,构建将触发您在用户“下”创建的任何分支。

为方便起见,您将授予用户重写他们自己的分支的权限:

这使得该过程几乎与 TFVC 解决方案一样轻量级。而且您仍然只需要一个构建定义来验证所有用户的分支。

【讨论】:

  • 我看看它是否符合我的需要,谢谢。如果有帮助会标记它;)
  • 似乎它在我的 TFS 版本中不存在。或者它不适用于 GitRepository?我只有这些选项:prntscr.com/boiflb(带有 lightshot 的屏幕截图)
  • 没问题,我没有提到我正在使用Git。由于检查代码是没有选择的,导致用户必须为每个测试做的工作开销(测试可能基于分钟发生),我的情况似乎没有选择。我想我必须研究其他为此目的而设计的构建系统。我会将您的答案标记为正确,因为它可以帮助其他人,也许您可​​以仅添加 TFVC 部分;)。
  • 已更新 Git 信息
猜你喜欢
  • 2014-06-08
  • 2015-09-15
  • 2018-11-17
  • 1970-01-01
  • 1970-01-01
  • 2010-10-29
  • 2014-07-23
  • 2019-03-31
  • 2012-09-15
相关资源
最近更新 更多