TeamCity On-Premises 2023.11 Help

Branch Filter

If a VCS root has branches specified, the branch filter option becomes available for various operations in TeamCity.

Branch Filter Usage

Currently, branch filters can be configured on the following TeamCity settings pages:

Settings

Branch filter description

Version Control Settings of a build configuration

Limit the set of branches available for the build configuration. This branch filter is applied before any other branch filter and limits branches shown in the custom build dialog, as well as branches visible to triggers and build features.

Artifact dependency

Limit dependency builds, whose artifacts will be used in the builds of the current configuration, to those in the matching branches.

Finish build triggers

Limit the set of branches where builds will be monitored by this finish build trigger.

VCS triggers

Limit the set of branches in which builds can be triggered by this VCS trigger.

Schedule triggers

Limit the set of branches the trigger should be applied to.

  • If "Trigger build only if there are pending changes" is turned ON, then the trigger will add a build to the queue for all matching branches where pending changes exist.

  • If "Trigger build only if there are pending changes" is turned OFF, then the trigger will add a build to the queue for all matching branches regardless of the presence of pending changes there.

Retry build triggers

Set a branch filter to rerun failed builds only in branches that match the specified criteria.

VCS labeling build feature

Limit the set of branches to whose builds the labels will be applied.

Automatic merge build feature

Limit the set of branches which builds’ sources will be merged.

Notification rules and the Notifications build feature

Set a filter to receive alerts only on the builds from the specified branches. By default, only the default branch is monitored.

Pull Requests build feature

Specify on which branches to monitor and trigger pull requests.

Keep rules for clean-up

Specify a naming pattern for branches to which the clean-up rule will apply. Note that, depending on the "Apply rule" settings, it could either apply to a selected number of builds per each matching branch or to a selected number of builds once per set of matching branches.

If there are multiple branch filters configured atop a single root, the following order of priority is applied:

  1. The branch specification in the VCS root settings defines the initial set of the monitored branches.

  2. If specified, a branch filter in the Version Control Settings of a build configuration can narrow down the initial set of branches.

  3. If specified, a branch filter in the settings of a build trigger applies to the subset declared by the filter (2).

Branch Filter Format

To filter branches, use a newline-delimited list of +|-:logical_branch_name rules, where logical_branch_name is the name displayed in the TeamCity UI (for example, master). The name is case-sensitive.

The +: rules include the matching branches into the list of accepted branches, the -: rules exclude the branches from the list.

Each rule can have one optional wildcard * placeholder that matches one or more characters: +|-:name* will match the branch name1 but will not match the branch name, which will need to be added explicitly.

You can use parameter references in the branch filter.

When a single branch is matched by several lines of the branch filter, the most specific (least characters matched by a pattern) last rule applies. That is, if the filter contains an exact pattern matching the branch (i.e. a pattern without the * wildcard), then the last such pattern is used.

Other examples:

  • Only the default branch is accepted:

    +:<default>
  • All branches except the default one are accepted:

    +:* -:<default>
  • Only branches with the feature- prefix are accepted:

    +:feature-*
  • Empty branch filter (all branches are accepted):

    +:*
Last modified: 25 March 2022