Microsoft TFS 在没有 VCS 的情况下创建构建
Microsoft TFS Create a build without VCS
我目前正在通过他们的构建代理使用 Mircosofts Team Foundation Server 作为构建服务器。
我知道它确实提供了 REST-API,您可以在其中开始并查看构建等等。
但是是否有可能使用 TFS 中的构建代理来创建构建,就像提交某些内容时所做的那样,而无需将源代码提交到存储库中?
我开发移动应用程序,每次我都需要创建一个 .apk(例如)来测试本机功能。这是在签入时通过 TFS 完成的,但如果我正在测试某些东西,那么我需要每两分钟签入一次,这是不可能的。
我需要某种调用,我可以通过 commandline/tool 发送某种 zip 文件或其他东西,并使用其中的文件启动 TFS 构建代理。
而且我不想为不同的任务提供两个构建服务,也不想在本地机器上安装某些东西(它在公司里)。
TFS 是否提供这样的功能?
或者您将如何满足此类要求?
当您使用 TFVC 时
您可以对所谓的 "buddy build" 或 "build with shelveset" 进行排队。您将搁置本地更改并排队构建,它将自动将您的更改应用到源代码管理中的当前最新版本。这将 运行 在标准构建服务器上构建,但不需要您签入更改。
满意后,签入代码或使用 "Check in if build is successful" 选项排队构建好友。
TFS 2015 中的新构建和 VS Team Services 可以完成同样的事情,以防您不使用 XAML 构建。
您可以通过几个命令行命令 (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
您可以创建一个用户分支并将其推送到服务器。您自己的个人分支的 commit/push 应该不会造成任何问题,您可以选择 rebase/restructure 您的用户分支,然后再将其与功能分支合并。
要从命令行构建,您将使用 git 可执行文件来提交和推送(如果您授予用户在他们自己的分支上强制推送的权限,那么您可以使用 amend
和 force
:
git commit -m "Testing local changes" [--amend]
git push -u [--force] origin/user/me/testing
您的构建将配置为在您的用户分支或所有用户上触发:
您可以使用通配符指定分支过滤器,在这种情况下,构建将触发您创建的任何分支 "under" 您的用户。
为了更加轻松,您可以授予用户重写他们自己的分支的权限:
这使得该过程几乎与 TFVC 解决方案一样轻量级。而且您仍然只需要一个构建定义来验证所有用户的分支。
我目前正在通过他们的构建代理使用 Mircosofts Team Foundation Server 作为构建服务器。
我知道它确实提供了 REST-API,您可以在其中开始并查看构建等等。
但是是否有可能使用 TFS 中的构建代理来创建构建,就像提交某些内容时所做的那样,而无需将源代码提交到存储库中?
我开发移动应用程序,每次我都需要创建一个 .apk(例如)来测试本机功能。这是在签入时通过 TFS 完成的,但如果我正在测试某些东西,那么我需要每两分钟签入一次,这是不可能的。
我需要某种调用,我可以通过 commandline/tool 发送某种 zip 文件或其他东西,并使用其中的文件启动 TFS 构建代理。
而且我不想为不同的任务提供两个构建服务,也不想在本地机器上安装某些东西(它在公司里)。
TFS 是否提供这样的功能? 或者您将如何满足此类要求?
当您使用 TFVC 时
您可以对所谓的 "buddy build" 或 "build with shelveset" 进行排队。您将搁置本地更改并排队构建,它将自动将您的更改应用到源代码管理中的当前最新版本。这将 运行 在标准构建服务器上构建,但不需要您签入更改。
满意后,签入代码或使用 "Check in if build is successful" 选项排队构建好友。
TFS 2015 中的新构建和 VS Team Services 可以完成同样的事情,以防您不使用 XAML 构建。
您可以通过几个命令行命令 (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
您可以创建一个用户分支并将其推送到服务器。您自己的个人分支的 commit/push 应该不会造成任何问题,您可以选择 rebase/restructure 您的用户分支,然后再将其与功能分支合并。
要从命令行构建,您将使用 git 可执行文件来提交和推送(如果您授予用户在他们自己的分支上强制推送的权限,那么您可以使用 amend
和 force
:
git commit -m "Testing local changes" [--amend]
git push -u [--force] origin/user/me/testing
您的构建将配置为在您的用户分支或所有用户上触发:
您可以使用通配符指定分支过滤器,在这种情况下,构建将触发您创建的任何分支 "under" 您的用户。
为了更加轻松,您可以授予用户重写他们自己的分支的权限:
这使得该过程几乎与 TFVC 解决方案一样轻量级。而且您仍然只需要一个构建定义来验证所有用户的分支。