Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在执行生成任务之前,确定另一个生成是否在TFS中排队_Tfs_Continuous Deployment_Octopus Deploy - Fatal编程技术网

在执行生成任务之前,确定另一个生成是否在TFS中排队

在执行生成任务之前,确定另一个生成是否在TFS中排队,tfs,continuous-deployment,octopus-deploy,Tfs,Continuous Deployment,Octopus Deploy,我们运行一个环境,将多个功能划分为多个分支。这些分支配置为八达通部署中的一个通道 我想知道如果另一个生成排队等待分支,是否有方法签入生成定义 对于上下文-我有一个八达通部署步骤作为构建定义中的最后一步。部署应用程序-大约需要10分钟。我们的构建过程也是大约10分钟,这是一个大的应用程序 当一个开发一个功能的团队签入时,我们会有2个和3个构建排队等待每个签入和构建完成 我想做的是,只有当没有另一个构建排队等待同一个分支时,才运行部署任务。这将确保我们不会浪费30分钟不必要的部署,只部署最新的代码

我们运行一个环境,将多个功能划分为多个分支。这些分支配置为八达通部署中的一个通道

我想知道如果另一个生成排队等待分支,是否有方法签入生成定义

对于上下文-我有一个八达通部署步骤作为构建定义中的最后一步。部署应用程序-大约需要10分钟。我们的构建过程也是大约10分钟,这是一个大的应用程序

当一个开发一个功能的团队签入时,我们会有2个和3个构建排队等待每个签入和构建完成


我想做的是,只有当没有另一个构建排队等待同一个分支时,才运行部署任务。这将确保我们不会浪费30分钟不必要的部署,只部署最新的代码

您使用什么类型的构建?XAML构建或Vnext构建。似乎您在构建定义中使用了CI触发器,因此每次签入时它都会触发一个构建

VNext构建:

您可以选中“批量更改”复选框。根据,

如果选择此选项,则在运行生成时,系统将等待生成完成,然后将尚未生成的所有更改排入另一个生成队列

当您有很多构建排队时,这将把更改合并到一个构建中

XAML构建:

在构建定义中,可以使用滚动构建触发器。具有与上述批量更改相同的功能

注:

您还可以使用获取是否存在排队的生成定义的生成

Http method: Get  
http://servername:8080/tfs/DefaultCollection/TeamprojectName/_apis/build/builds?definitions=10&statusFilter=notStarted&api-version=2.0

结果比我想象的要容易,但这并不完全是我在这个问题上想做的

TFS和VST的Octopus创建发布任务有一个显示部署进度的选项。选中此选项将导致生成定义等待-通过Octo.exe工具定期接收来自Octopus的反馈

这个部署实际上是几个部署(15个独立项目)的包装器,因此需要很长时间

取消选中此选项将导致TFS不等待,而是向Octopus发送create release/deploy命令

现在,这并没有解决我最初的问题——但Tingting0929 MFST确实帮助了我,因为我使用TFS Rest API进行了探索。我编写了一个PS脚本,有效地完成了我的要求——如果有另一个构建排队等待同一个分支,则不部署。我让它工作了——但它引入了一个不同的问题,来自TFS的发行说明和相关的变更集/工作项在两个版本之间被吞没了

换句话说,如果三个签入非常接近,那么最后一个签入将被部署。八达通将只显示最后一次部署的发行说明,而不显示前两次部署的发行说明

对于那些在功能分支设置中使用八达通部署的用户,设置一个项目部署到多个渠道-这是一个选项,可以让您为每个渠道分支进行连续部署