vNext版本在TFS 2015上挂起在MSBuild步骤上并且不生成任何日志文件

时间:2016-03-30 16:54:08

标签: git tfs build continuous-integration tfs2015

我们最近从内部部署TFS2013升级到2015 Update1,我们已经建立了VSO Build Agent。

我现在正在尝试为我们的Git存储库中的解决方案设置测试(持续集成)vNext构建,但构建未运行不生成任何日志

已经设置了构建属性以指示正确的Git仓库,并且以下三个已添加到变量:VSO_GIT_USERNAME,VSO_GIT_PASSWORD,DNXPath。 MSBuild是目前添加到构建中的唯一步骤。

Showing MSBuild Step

推送提交会导致按预期触发构建,但是当触发构建时,它会挂起"等待来自代理的控制台输出":

Waiting for build agent

代理似乎没有任何问题:

  • 显示为正在运行(在services.msc中检查)
  • 它没有SSL依赖
  • 端口9191已添加到TFS服务器防火墙中的入站规则
  • 代理正在使用" Project Collection Build Service"特权
  • 代理在Web访问中显示为​​绿色:

enter image description here

当我取消构建和下载日志文件时,zip文件为空。

当我手动排队构建时(针对特定的提交#),也会发生同样的情况:没有构建运行,也没有日志文件。

我应该做什么/检查以使我的构建进度或使其生成日志文件?

有人可以提出前进的方向吗?

2 个答案:

答案 0 :(得分:1)

好的,找到了解决方案!在我的特定情况下,我使用防火墙接口(Windows Server 2012 R2)设置端口9191,并且它的入站规则看起来很好并且活跃。但它撒了谎。

当我问我的一位好同事Marc,检查端口是否真的没问题时,他在TFS机器上的PowerShell中运行 Get-NetFirewallPortFilter ,我的端口在列表中丢失了!

他建议的解决方案是运行以​​下PowerShell脚本(因为防火墙正在播放):

   $port = New-Object -ComObject HNetCfg.FWOpenPort
   $port.Port = 9191
   $port.Name = 'TFS CI Port:9191'
   $port.Enabled = $true

   $fwMgr = New-Object -ComObject HNetCfg.FwMgr
   $profile = $fwMgr.LocalPolicy.CurrentProfile
   $profile.GloballyOpenPorts.Add($port)

运行此命令后,防火墙入站规则中出现了端口9191的入站规则。

然后我手动排队构建,并且第一次看到它失败(没有挂起!),并且有日志文件! :)

答案 1 :(得分:0)

  1. 确保运行代理的帐户位于"代理池服务帐户"作用。

  2. 确保在集合(https://your-tfs-server:8080/tfs/your-collection/_admin/_AgentQueue)中配置了队列。如果不是 - 选择"新队列.."并选择现有队列。

  3. 确保按照this article完全部署Windows构建代理。

  4. 尝试更改域帐户,该帐户是Build Agent Service Accounts组的成员,属于" Agent Pool Service Account"角色,看代理人是否有效。

  5. 重新部署Windows代理。