Branch Remote Run Trigger Never Fires or Starts Job

I have my VCS Root set as follows:

Default branch:
refs/heads/main

Branch specification:
+:refs/heads/main
+:refs/heads/(remote-run/*)

No commit hook.

 

The Branch Remote Run Trigger is set to

Git: refs/heads/remote-run/*

 

When I push changes to:

git push origin HEAD:remote-run/<some branch name>

The Pending Changes show in TeamCity, but no job is ever started.

0
3 comments

The Branch Remote Run Trigger only processes branches that are not matched (and not excluded) by the VCS root's branch specification: Branch Remote Run Trigger.

Your branch specification includes +:refs/heads/(remote-run/*), so TeamCity already tracks `remote-run/*` as a regular branch — that's why it shows up correctly in Pending Changes. Because the branch is matched by the specification, the Branch Remote Run Trigger skips it and never starts a build.

Remove +:refs/heads/(remote-run/*) from the VCS root's branch specification and keep only +:refs/heads/main. The trigger's own pattern (refs/heads/remote-run/*) will then claim the branch and start the build.

Excluding the branch instead (-:refs/heads/remote-run/*) won't help: the trigger skips both matched and excluded branches.

One more thing to check: the trigger only fires on a commit TeamCity hasn't seen yet, so make sure the remote-run/<branch name> ref points at a revision newer than what's already tracked.
 

0

Thank you for the quick reply.


I've already switched our builds to use the “Pull Requests” build feature, so I think we are just going to abandon “Personal Builds” completely and use GitHub PRs now.


I would still like to find a way to route the builds that are triggered for Pull Requests to my “Test Builds” agent pool, if you have any ideas for that?

0

Agent pools are assigned at the project level, not per trigger. A build configuration can only run on agents from the pools assigned to its project, whatever triggered the build. There's no setting that routes "builds triggered by Pull Requests" to a pool directly.

If PR builds already run in their own configuration, give that configuration's project access only to the Test Builds pool. Do this under Administration | Agent Pools | Test Builds | Projects.

If PR builds share a configuration with other triggers, split them with an Agent Requirement. In TeamCity 2026.1 and later, the Pull Requests build feature sets teamcity.pullRequest.number to the literal string N/A on non-PR builds, rather than leaving it empty. A plain "exists" condition then matches every build, not just PR builds. Use does not equal N/A instead, or disable the placeholder with the internal property teamcity.pullRequests.parametersProvider.placeHolderParameters.enabled=false and use "exists" as before. Either way, add a second requirement keyed to a parameter unique to the Test Builds pool's agents. That way, the configuration only picks Test Builds agents for the PR-triggered case.

0

Please sign in to leave a comment.