Allowing a build even if artifact dependency doesn't exist?

Is there any way to allow TeamCity to still run a build config, even if certain artifacts from dependencies don't exist?
In my current setup, as soon as a single artifact cannot be located, the build config will fail.

Use Case:
I have a 'Create Master Installer' step that is snapshot and artifact dependent on a few other 'Create platform Installer' steps.
ALL platform artifacts don't need to exist, I'd happily build an installer with whatever was successful.

Compile PS3 libs -> Create PS3 installer exe artifact -\
Compile 360 libs -> Create 360 Installer exe artifact ----- > Compile master installer (containing any successfully built platform installers (not all required to be present))
Compile PC libs  -> Create PC Installer exe artifact  -/


Comment actions Permalink

Hi Jim

If I understood you correctly, looks like what you need to specify in the dependency is to take artifacts from the "last successful build" of the dependency (regardless of when it was).

ziv shapira

Comment actions Permalink

Hi Ziv,

You've understood me correctly by the sound of things, so thanks for answering :)
The only issue with your suggestion is that my generated installation needs to be produced from the same SVN/Git revision (so that all source code and libs are in sync across platforms), so it'd need to come from the same build chain unfortunately.

My plan is to simply not include platforms that havent successfully built, so if only PC and Xbox360 artifacts exist, just have an installer that includes these two.

The ideal solution in my eyes would be to have a tickbox similar to the Snapshot Dependencies' "Run build even if dependency has failed"
But for artifact dependencies would be "Run build even if dependency cannot be found" or similar

Comment actions Permalink

Hi Jim,

I see, the option might be implemented. However, this does not seem a popular case when an artifact dependency is "optional"...
You are welcome to file a new feature request on this into our issue trracker.

As to the current workaround, I'd suggest to download the artifacts manually in the build script and not via UI-configured artfact dependnecies.

Comment actions Permalink

Thanks Yegor,

The manual option could also work too, I may give that a try.
I understand that it's not a popular case, and was required for a single very specific here.

I've managed to sort it by having platform triggers that each compile their own installer exe and place it on a shared network location, and my master trigger now simply adds a master installer exe to interface with the available platform installers already there.

I'll not raise a request, as there's a few valid ways of doing a similar thing. So it's not essential.



Please sign in to leave a comment.