Hi,

On the theorical base, the dependencies should be the other way round.
The continuous integration principle is that dependencies should trigger
the build of the projects that uses these dependencies, not the other way
round...
But of course, there are always some cases that don't match such a rule.

For your case, I'd say the easiest is to
- define a Job that builds Project 3 and publish its artifacts
- define a Job that builds Project 2 : it's first step should be
"Trigger/build another job", triggering the Project 3's job (you can
configure the step to be blocking) ; the second steps retrieve the
artifacts ; the third steps actually builds Project 2
- Same principle for the Project 1 job, you only need to have trigger the
Project 2's job, that will trigger Project 3's job, and so on.

One thing to keep it mind though : you need to have at least 3 agents
'cause the three jobs will run in "parallel".

This is kind of a dirty trick since it's outside of Jenkins "core
principles", but it's easy enough and should work flawlessly.

Hope that helped.


2013/1/12 Faisal Faizan <faisalfai...@gmail.com>

> Hi Michael,
>
> I have a similar situation but a little more complex, am curious to know
> if you found a solution which I could utilize for my case.
>
> Project 1 is dependent on artifacts from Project 2 & Project 3.
> Project 2 is dependent on artifacts from Project 3.
> Project 3 is independent.
>
> 1) When a commit is made to Project 3, only it should be build.
> 2) When a commit is made to Project 2, it should first build Project 3 and
> then use the artifacts from it and build Project 2.
> 3) When a commit is made to Project 1, it should first build Project 2 &
> Project 3 and then use the artifacts from it and build Project 1.
>
> Regards
> Faisal
>
> On Thursday, 30 August 2012 14:14:03 UTC+5:30, mpapo - Michaël Pailloncy
> wrote:
>>
>> Hi !
>>
>> Currently, we have several jobs building projects dependent in each other
>> : Project1 on Job1 has dependencies to Project2 et Project3 on Job2 et Job3.
>> When we want to release Project1, we must release Project2 and Project3
>> before releasing Project1.
>>
>> Is there a plugin or a best practice to automatically release Project2
>> and Project3 before Project1 ?
>>
>>
>> Thanks in advance !
>> Michaël
>>
>

Reply via email to