TC doesnt trigger pending change with checkout rules and branch filter

We're seeing a behavior in teamcity with git which I cannot understand and think is a bug.
For a certain scenario, quite common, teamcity shows pending changes in the configuration but no build is triggered.
Teamcity 2020.1.5.

I've reprod the issue with the following setup and steps:

vcs root git,
default branch: refs/heads/dev
branch specification:
+:<default>
+:refs/heads/(master)
+:refs/heads/(dev)
+:refs/heads/(feature/*)
+:refs/heads/(release/*)
+:refs/heads/(hotfix/*)
+:refs/heads/(bugfix/*)

configuration vcs,
checkout rules:
+:core
+:server
branch filter:
+:<default>
+:release

configuration vcs trigger,
branch filter:
+:*

setup a git repository with this structure on the dev branch:

echo 'hello' > .\core\a.c
echo 'hello' > .\core\b.c
echo 'hello' > .\server\sa.c
echo 'hello' > .\server\sb.c
echo 'hello' > .\client\ca.c
echo 'hello' > .\client\cb.c

-- fine, testbed fixed --

Teamcity works as expected building stuff in ./core and ./server on the dev and the release branches.
We're having separate configurations for bug and feature branches for pull requests etc.
The problem arises when dev is merged into a feature branch and then the feature branch is merged back into dev, this detects a pending build but it's not triggered.

steps:

git checkout dev
git checkout -b feature/featY
echo 'serverchange featy' >> .\server\sb.c
git add .\server\sb.c
git commit -m 'a change in server featy'
git push origin -u feature/featY
(nothing pending nor triggered in tc, fine)

git checkout dev
git checkout -b feature/featZ
echo 'clientchange featz' >> .\client\ca.c
git add .\client\ca.c
git commit -m 'a change in client featz'
git push origin -u feature/featZ
git checkout dev
git merge feature/featZ --no-ff
git push origin
(nothing pending nor triggered in tc, fine)

git checkout feature/featY
git merge dev --no-ff # here we merge dev into feature branch, nothing unusal
git push origin
git checkout dev
git merge feature/featY --no-ff
git push origin

This last commit/push send a merge in dev to git server.
The merge includes changes in client and server and should trigger a build but it's stuck in pending, never triggered.

How can we resolve this ?
  /Stefan

1

Please sign in to leave a comment.