在执行生成任务之前,确定另一个生成是否在TFS中排队
我们运行一个环境,将多个功能划分为多个分支。这些分支配置为八达通部署中的一个通道 我想知道如果另一个生成排队等待分支,是否有方法签入生成定义 对于上下文-我有一个八达通部署步骤作为构建定义中的最后一步。部署应用程序-大约需要10分钟。我们的构建过程也是大约10分钟,这是一个大的应用程序 当一个开发一个功能的团队签入时,我们会有2个和3个构建排队等待每个签入和构建完成在执行生成任务之前,确定另一个生成是否在TFS中排队,tfs,continuous-deployment,octopus-deploy,Tfs,Continuous Deployment,Octopus Deploy,我们运行一个环境,将多个功能划分为多个分支。这些分支配置为八达通部署中的一个通道 我想知道如果另一个生成排队等待分支,是否有方法签入生成定义 对于上下文-我有一个八达通部署步骤作为构建定义中的最后一步。部署应用程序-大约需要10分钟。我们的构建过程也是大约10分钟,这是一个大的应用程序 当一个开发一个功能的团队签入时,我们会有2个和3个构建排队等待每个签入和构建完成 我想做的是,只有当没有另一个构建排队等待同一个分支时,才运行部署任务。这将确保我们不会浪费30分钟不必要的部署,只部署最新的代码
我想做的是,只有当没有另一个构建排队等待同一个分支时,才运行部署任务。这将确保我们不会浪费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的发行说明和相关的变更集/工作项在两个版本之间被吞没了 换句话说,如果三个签入非常接近,那么最后一个签入将被部署。八达通将只显示最后一次部署的发行说明,而不显示前两次部署的发行说明 对于那些在功能分支设置中使用八达通部署的用户,设置一个项目部署到多个渠道-这是一个选项,可以让您为每个渠道分支进行连续部署