Details
-
Task
-
Resolution: Done
-
Major
-
None
-
None
-
None
Description
The jenkins job trigger each other.
Goal: When the code of a project changes and builds, the downstream projects must still be able to compile and run their tests.
For example for the master jobs:
https://jenkins.mw.lab.eng.bos.redhat.com/hudson/view/Drools%20jBPM/view/Master/
droolsjbpm-knowledge triggers drools. Drools triggers optaplanner and jbpm (in parallel). jbpm triggers integration. integration triggers guvnor.
Recently that order changed and new repositories were added, so the triggering is no longer in sync:
https://github.com/droolsjbpm/droolsjbpm-build-bootstrap/commit/aedf4d88875edfd09af0074d47630b57ba9df4b2#commitcomment-3723154
Howto:
1) Open the configuration of a job, for example
https://jenkins.mw.lab.eng.bos.redhat.com/hudson/view/Drools%20jBPM/view/Master/job/drools/configure
2) In the section "Acties after building", look for "Build another project" (in your language)
3) Or in the section "Build activators", look for "Build after building other project". This is the inverse relationship.
Note: if you change 2) or 3), Jenkins automatically changes the other one for you.
Requirements:
- Every project that is released (= every project in repository-list.txt) must have a jenkins job for every branch (master, 6.0.x) on which it gets released.
- A jenkins job can never trigger a job from another branch (master, 6.0.x, 5.5.x, ...) than its own branch.
- The triggering of a set of jobs of the same branch, must be in sync with the repository-list.txt of that branch (which might be different from other branches).
Notes:
- No need to check 5.5.x or lower: that will be OK.
- Currently some projects trigger in parallel (for example drools triggers optaplanner and jbpm in parallel because neither depend on each other). For simplicity, you're free to refactor that away. Or to make more use of it (do as you see fit).