Snapshot Dependencies not working as expected

Am I missing something here?  I have a build chain as follows - Core -> Framework -> [ 4 x front-end projects ]

If I commit code changes to one of my 4 projects, I expect Core and Framework to build only if they have pending VCS changes.  Likewise, if I commit a code change to Core or Framework, I expect all of the 4 front-end projects to build every time.

This isn't happening - far too frequently, the upstream dependencies are rebuilt unnecessarily and, slightly less frequently but more annoying, when changing code in the low-level dependencies, the front-end projects are "not triggered" for reasons that TC doesn't fully explain in the UI.

Have I misunderstood how this is supposed to work, or is there a bug in this feature?

1 comment
Comment actions Permalink

Hi Richard

Sorry for late reply.

Upstream dependencies should not rebuilt if they have no new changes. Technically, when you trigger new build for one of your frontend project, all three builds are put into a queue - for Core, Framework, and for the project build configurations. But by default unescessary builds are skipped, and previous artifacts are reused. Do not run new build if there is a suitable one option handles this behavior. Please check how it's set.

TeamCity snapshot dependencies work in pull mode. Triggered Frontend build requires fresh artifacts from upstream configurations, but by default new Core build does not trigger new builds down the chain.
It can be done by adding VCS Trigger with enabled Trigger on changes in snapshot dependencies option to your Frontend configurations.

You can find more examples in Build Dependencies Setup article.



Please sign in to leave a comment.