
Branch Remote Run trigger automatically starts a new personal build each time TeamCity detects changes in particular branches of the VCS roots of the build configuration.
At the moment this trigger supports only Git and Mercurial VCSes.
A trigger monitors branches with names that match specific patterns. Default patterns are:
for Git repositories --- *refs/heads/remote-run/\**
for Mercurial repositories --- *remote-run/\**
By default TeamCity triggers a personal build for the user detected in the last commit of the branch. You might also specify TeamCity user in the name of the branch. To do that use a placeholder *TEAMCITY_USERNAME* in the pattern and your TeamCity username in the name of the branch, for example pattern *remote-run/TEAMCITY_USERNAME/\** will match a branch *remote-run/joe/my_feature* and start a personal build for the TeamCity user {{joe}} (if such user exists).
{note:title=Troubleshooting}
At the moment there is no UI to show what's going on inside the trigger, so the only way to troubleshoot it is to look inside {{teamcity-remote-run.log}}. To see a more detailed log please enable *debug-vcs* logging preset at *Administration* | *Server Configuration* | *Diagnostics*.
{note}
In order to trigger a build branch should have at least one new commit comparing to the main branch.
h3. Example: Run a personal build from a command line.
h4. Git
{code}
% cd <your local git repo>
% git branch
* master
% git checkout -b my_feature
Switched to a new branch 'my_feature'
//code, commit; code, commit
% git push origin +HEAD:remote-run/my_feature
{code}
With the default pattern (*refs/heads/remote-run/\**) command {{git branch -r}} will list your personal branches. If you want to hide them, change the pattern to *refs/remote-run/\** and push your changes to branches like *refs/remote-run/my_feature*. In this case your branches are not listed by the above command, although you can see them anyway using {{git ls-remote <url of git repository>}}.
h4. Mercurial
{code}
% cd <your local hg repo>
% hg branch
default
% hg branch remote-run/my_feature
marked working directory as branch remote-run/my_feature
//code, commit; code, commit
% hg push -b remote-run/my_feature --new-branch