tfs - Microsoft TFS 在没有 VCS 的情况下创建构建

标签 tfs build azure-devops tfsbuild build-server

我目前正在通过其构建代理使用 Mircosofts Team Foundation Server 作为构建服务器。

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

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

我开发移动应用程序,每次都需要创建一个 .apk(例如)来测试 native 功能。这是通过 TFS 在 checkin 时完成的,但如果我正在测试某些内容,那么我需要每两分钟 checkin 一次,而这是不可能的。

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

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

TFS 提供这样的功能吗? 或者说你会如何满足这种要求?

最佳答案

当您使用 TFVC 时

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

一旦满意,请 checkin 代码或使用“如果构建成功则 checkin ”选项对好友构建进行排队。

enter image description here

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

enter image description here

您可以通过几个命令行命令 (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

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

enter image description here

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

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

enter image description here

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

关于tfs - Microsoft TFS 在没有 VCS 的情况下创建构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38128243/

相关文章:

visual-studio - Visual Studio 警报工作区已存在

c# - tfs如何查看本地文件是否为最新版本?

tfs - 如何最好地从 VSTS 下载源文件?

升级后 Jenkins 缺少构建触发器部分

azure - Azure Devops 中的列出容量 API 不返回已离开组织的成员的容量

.net - 找不到 Azure DevOps NuGet 包

azure 管道多行脚本

tfs - 获取最新版本两次(多次)

ios - 使用自动配置 xcode 4、iPad 4.3.5 构 build 备 - 失败并显示 'no issues'

c++ - 使用包中工作空间导入的线性代数库Eigen