如何在 TFS 2015 中链接构建?

2024-05-06

TFS 2015 中是否有一种方法可以进行两个构建,以便每当第一个构建(成功)完成时就会触发第二个构建?那里are https://tfschainbuild.codeplex.com/ 解决方案 https://blog.stangroome.com/2011/09/06/queue-another-team-build-when-one-team-build-succeeds/对于旧的基于 XAML 的构建系统,但对于我正在使用的新的基于脚本的系统没有任何影响。


我通过创建一个自定义 BuildTask 实现了构建的“链接”,该任务基本上只是对 TFS REST Api 进行适当的调用。然后,它允许我定义一个我想要触发的构建定义(按名称),并在顶部添加一些条件(例如检查是否有该定义的构建已排队或检查某个定义的最后一次构建是否成功) )。

如果有兴趣,我将源代码上传到github https://github.com/huserben/TfsExtensions/tree/master/BuildTasks/triggerbuildtask.

使用 tfx 您可以将任务上传到您的 TFS请参阅此处的详细信息 https://github.com/Microsoft/tfs-cli/blob/master/docs/buildtasks.md
简而言之,只需从 github 获取文件,通过节点安装 tfx 并运行

tfx build tasks upload --task-path ./triggerbuildtask

After this you can select the Trigger new Build Task and configure it: enter image description here

希望这可以帮助一些尝试实现同样目标的人。

Edit
我打包了该任务并将其发布到 Marketplace 上,因此可以轻松地在您的环境中使用该任务:
触发构建任务 https://marketplace.visualstudio.com/items?itemName=benjhuser.tfs-extensions-build-tasks

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 TFS 2015 中链接构建? 的相关文章

随机推荐

  • 如何访问 Rails 4 模型中的 polymorphic_path?

    很简单 我想用polymorphic pathRails 4 模型中的方法 是的 我知道关注点分离很差 我知道Rails application routes url helpers but polymorphic path不在那里 尝试也
  • 在gradle c++项目中配置C++标准?

    我有一个由以下构建脚本定义的 gradle 项目 build gradle plugins id cpp application application targetMachines add machines linux x86 64 ta
  • 如何手动加载并执行 ELF 二进制可执行文件?

    假设二进制文件是PIC 如何将其加载到内存并执行入口点 我这样做是为了熟悉 ELF 所以execve不允许 这些是基本步骤 阅读程序头以查找 LOAD 指令并确定您需要的映射的总长度 以页为单位 将最低地址的 LOAD 指令映射到总长度 可
  • FXML 文档拒绝导入其他 fxml 文件

    我的程序有一个主要的 FXML 文档 其中包含TabPane 对于每个选项卡 我希望它有自己的控制器和 fxml 文件 当我尝试将外部 fmxl 文件包含到主 fxml 文档中时 我的程序拒绝运行 这是我的主要 FXML 文档 这是我的 j
  • 如何使用 jenkins shell 创建新的 git 分支

    我想达到以下目标 在某些詹金斯工作中 从 dev branch 创建一个新分支 对新创建的分支 new branch 进行一些更改 将新创建的分支推送到 git repo 我在詹金斯中执行了以下步骤 我已经在 源代码管理 部分配置了我的 g
  • JSF h:列标记固定宽度

    有人可以告诉我如何使用 JSF 修复数据表中列的宽度吗 我的代码当前如下
  • 在 Go 中使用 init() 函数真的很糟糕吗?

    几天前我开始了一个新的 go 项目 我使用 golangci lint 使我的代码具有良好的风格 我发现 gochecknoinits 是 golangci lint 的 linter 之一 它告诉我不要使用 init 在我看来 为了方便起
  • pandas 用 nan 值切割了一系列

    我想将 pandas cut 函数应用于包含 NaN 的序列 期望的行为是它对非 NaN 元素进行存储并为 NaN 元素返回 NaN import pandas as pd numbers with nan pd Series 3 1 2
  • Excel函数:引用单元格中的数组

    我在单元格 A1 中有一个数组 通过 A1 G6 J6 aa b ccc 1 现在我想将单元格 A1 用于 B1 中的数组公式 基本上B1应该是 B1 SUMPRODUKT C6 C12 B6 B12 G6 J6 但我不想直接引用 G6 J
  • 在 c:\ProgramFiles\ 下时忽略 .Net app.config 文件

    我有一个奇怪的现象 我有 Net 4 0 应用程序 当 myapp exe config 位于普通的 programfiles 文件夹下时 它将被忽略 即使我删除它或在其中写入废话 myapp exe 仍然可以工作 并且在我看来 这些值是从
  • 如何使用Python3将ruamel.yaml转换为dict?

    我想要一个dict or OrderedDict from ruamel yaml 我正在使用 Python 3 8 如果有帮助的话 很乐意切换到 3 9 from ruamel yaml import YAML from collecti
  • java:查找数组中整数的频率

    我需要开发一个java要求用户输入一些内容的程序integers并找出最大和最小的数 以及这些数的平均值 然后 划分数组的集合分成若干子区间用户指定的 然后它生成一个边界点 每个边界点的长度为子区间宽度 问题是我需要创建一个频率 例如 间隔
  • 在 Linux 上编译时未定义对 mempcy@GLIBC_2.14 的引用

    我正在尝试将应用程序驱动使用 ftdi2332h 芯片的设备从 Windows 移植到 Linux 我在 ubuntu 10 04 系统上安装了 libftd2xx 库按照这些说明 http www ftdichip com Drivers
  • Python:合并嵌套列表

    初学者在这里 我有 2 个要合并的嵌套列表 list1 a b c d e f g h list2 p q r s t u v w 我正在寻找的输出是 list3 a p q b c r s d e t f g h u v w 这可以在没有
  • 如何在模板形式 Angular 2 中使用最小、最大验证[重复]

    这个问题在这里已经有答案了 我尝试在模板表单中使用 min 验证 但它不起作用 如何以模板形式使用它 感谢您的帮助
  • 启动时启动服务但不进行任何活动

    我想创建一个仅包含服务 无活动 的应用程序 该服务必须在启动时启动 我的问题是 如果没有活动 启动接收器似乎不会调用 我用下面的例子进行了测试 我有不同的文件 MyReceiver java package com test teststa
  • Android 谷歌地图圆圈平滑改变半径

    我想控制按进度条循环 但是谷歌地图APIsetRadius变化并不顺利 如何平滑改变圆半径 这是我的源代码 private Circle circle public void onMapReady final GoogleMap googl
  • 在 bash 函数中生成后台进程

    我正在编写一个 Bash 函数来启动需要从某个文件夹启动的服务器 但我不希望启动该服务器影响我当前的工作 我写了以下内容 function startsrv pushd cd TRUNK SERVERCOMMAND popd 我的变量都已设
  • Django:如何从管理界面调用管理自定义命令执行?

    参考 从代码执行管理命令 https stackoverflow com questions 907506 how can i call a custom django manage py command directly from a t
  • 如何在 TFS 2015 中链接构建?

    TFS 2015 中是否有一种方法可以进行两个构建 以便每当第一个构建 成功 完成时就会触发第二个构建 那里are https tfschainbuild codeplex com 解决方案 https blog stangroome co