Why can't snapshot dependencies build on same agent AND not require a run if up-to-date?

I have a set of configurations, A and B, with B having a snapshot dependency on A. It is a requirement that both run on the same agent, so I check the "Run build on the same agent" in the snapshot dependency options. I would also like to ensure that a new build of A is not run when B is built and A is already up to date - I want to select "Do not run new build if there is a suitable one", but this is not permitted.

I've looked through the documentation and bug tracker, but couldn't see why both of these options can't be set at the same time. Could this be explained, and can it be changed?


Comment actions Permalink

Hi Kris

"Run build on the same agent" option was designed for cases where first build modifies system environment, and the second build relies on that system state. In such scenario a build may fail just because dependent build is not performed.

Could you explain your use case? It would help us improve the feature in future releases.


Comment actions Permalink

The first configuration (A) checks out and builds various 3rd party modules (e.g. Boost, etc). The resultant files on disk are too big and numerous to be stored as artifacts, so they remain on disk. These 3rdParty files change infrequently, but when they do change, all build agents will need to have the latest version of the 3rd party modules built before building any dependant configurations (configuration B).

So I want configuration B to ensure that there is a built version of configuration A on the same machine/agent that it is set to build on. If (and only if) there isn't a built version of A on the same agent, then A should be built before B runs.

Comment actions Permalink

I will raise a change request for this.


Please sign in to leave a comment.