12 Replies Last post: Mar 31, 2014 2:29 PM by Pawel Pabich  
Pawel Pabich Newbie 29 posts since
Aug 17, 2010
Currently Being Moderated

Mar 19, 2014 5:19 PM

How to trigger a new dependant build for each triggering build with artifact dependency

Hi,

 

I have two builds.

 

* QuickCI which takes 10 minutes and executes a small subset of end to end tests.  It is triggered for each checkin.

* FullCI which takes 1.5h and executes all end to tests.

 

What I'm trying to achieve is that every successful QuickCI build triggers a new FullCI build. At the moment TC combines bunch of QuickCI builds and triggers one FullCI for all of them. This means that when FullCI fails I  don't know which exact checkin caused the failure. I understand why TC combines them but I would like to queue a new FullCI build for each successful QuickCI.

 

There is artifact snapshot dependency between FullCI and QuickCI and it's set to build from the same chain but TC sill combines the QuickCI builds. Is there a way around ?

 

Thanks

 

Pawel

Sergey Pak JetBrains 321 posts since
Nov 13, 2013

Artifacts dependency is about using artifacts from another build. And the default option here is "Last successfull build". If you need to trigger a new build for the same sourcebase, you need to use snapshot dependency with artifacts dependency together. And set artifacts dependency to "from the same chain".

Sergey Pak JetBrains 321 posts since
Nov 13, 2013

Snapshot dependency triggers dependent builds. So, you need to trigger Full CI, which will run only if SmallCI is successfull

Sergey Pak JetBrains 321 posts since
Nov 13, 2013

Alternatively, you can use a "Finish build Trigger" in FullCI and to trigger build if a successfull QuickCI finishes. You should also have keep snapshot dependency from FullCI to QuickCI.

 

What changes here, is that every commit should trigger QuickCI and only successfull ones of it will trigger FullCI.

Sergey Pak JetBrains 321 posts since
Nov 13, 2013

Ya, finish build trigger requires some time to occur, because it's asynchronous. If two commits occur, say within a minute, they might be merged this way, because two build triggerings will merge into one (last) - this is the way triggering works. To always build FullCI for every successfull, you need to use the approach I suggested before (but you will see failed FullCI builds that didn't start because QuickCI failed).

Sergey Pak JetBrains 321 posts since
Nov 13, 2013

Need to look in details (apart from code now), but I suspect, that these several builds triggered via REST will be merged later.

Sergey Pak JetBrains 321 posts since
Nov 13, 2013

Speaking honestly, we need to fix the REST, because it bypasses our merge procedures .

More Like This

  • Retrieving data ...