vNext build on TFS 2015 hangs on MSBuild step and produces no log files

Question!

We have recently upgraded from on-premises TFS2013 to 2015 Update1, and we have set up a VSO Build Agent.

I am now trying to set up a test (continuous integration) vNext build for a solution in our Git repository, but the builds are not running and not producing any logs.

The build properties have been set up to indicate the correct Git repo, and the following three have been added to Variables: VSO_GIT_USERNAME, VSO_GIT_PASSWORD, DNXPath. MSBuild is the only step added to the build at the present.

Showing MSBuild Step

Pushed commits result in builds being triggered as expected, but when a build is triggered, it just hangs "Waiting for console output from an agent":

Waiting for build agent

There doesn't seem to be anything wrong with the agent:

  • it is shown as running (checked in services.msc)
  • it has no SSL dependencies
  • port 9191 has been added to Inbound rules in TFS server firewall
  • the agent is running with "Project Collection Build Service" privileges
  • the agent appears green in Web access:

enter image description here

When I cancel the build and download log files, the zip file is empty.

The same happens when I queue a build manually (against a specific commit #): no build runs and no log files.

What should I do/check to either make my build progress or make it produce log files?

Can anybody suggest a way forward?

By : Victoria


Answers
  1. Make sure the account that the agent is run under is in the "Agent Pool Service Account" role.

  2. Make sure the queue is provisioned in the collection ( https://your-tfs-server:8080/tfs/your-collection/_admin/_AgentQueue ). If not - select "New queue.." and select the existing queue.

  3. Make sure you deploy the Windows build agent by exactly following this article.

  4. Try to change a domain account which is a member of the Build Agent Service Accounts group and belongs to "Agent Pool Service Account" role, to see whether the agent would work or not.

  5. Re-deploy the windows agent.



Ok, solution found! In my particular case I set up port 9191 using Firewall interface (Windows Server 2012 R2), and the inbound rule for it looked nice and active. But it lied.

When I asked a good colleague of mine, Marc, to check if the port was really ok, he ran Get-NetFirewallPortFilter in PowerShell on the TFS machine and my port was missing from the list!

The solution he suggested was to run the following PowerShell script (since Firewall was playing up):

   $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)

Once this was run, an inbound rule for port 9191 appeared in Firewall inbound rules.

I then manually queued the build, and for the first time saw it fail (not hang!), and with log files at that! :)

By : Victoria


This video can help you solving your question :)
By: admin