Microsoft TFS创建不带VCS的构建

时间:2016-06-30 16:03:41

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

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

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

但有没有可能使用TFS中的构建代理来创建构建,就像提交某些东西时一样,而不将源提交到存储库中?

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

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

我不希望为不同的任务提供两个构建服务,并且不希望在本地计算机上安装某些东西(它在公司中)。

TFS是否提供这样的功能? 或者你会如何解决这种要求?

1 个答案:

答案 0 :(得分:2)

当您使用TFVC时

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

一旦满意,请签入代码或使用“签入是否构建成功”选项对伙伴构建进行排队。

http://jsfiddle.net/MgcDU/12389/

如果您不使用XAML版本,可以使用新的TFS 2015和VS Team Services来完成同样的事情。

enter image description here

您可以通过几个命令行命令(XAML)自动执行该过程。

<style>
#counter {
          position: relative;
      }
      #background{


      }
      #squaremoreleft{
        position:absolute;
        width: 20%;
        left:5%;
        top:51%;
      }
      #squareright{
        position:absolute;
        width: 20%;
        left:26%;
        top:51%;
      }
</style

<div class="container">
          <div class="row-fluid">
            <div class="span12">
              <div id="counter">
                <img id="background"src="{{asset('img/imgbackground.png')}}" class="img-responsive"/>
                <a href="link1">
                <img id="squaremoreleft"src="{{asset('img/squareleft.png')}}" class="img-responsive" />
                </a>
                <a href="link2>
                <img id="squareright"src="{{asset('img/squareright.png')}}" class="img-responsive" />
                </a>
              </div>
            </div>
          </div>
        </div>

我不认为有一种方法可以使用现有的TFX命令行工具为新构建引擎enter image description here使用shelveset对构建进行排队。将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 作为"My Local Changes";yourusername传递。

当您使用Git

您可以创建用户分支并将其推送到服务器。提交/推送到您自己的个人分支应该没有问题,您可以选择在将用户分支与功能分支合并之前对其进行重新定位/重组。

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

amend

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

but it is possible using a little bit of PowerShell to invoke the REST API

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

为了方便您,您可以授予用户重写自己分支的权限:

enter image description here

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