Confusion of Maven build jobs sequence

36 views
Skip to first unread message

Martin Schmude

unread,
Nov 8, 2015, 2:24:48 PM11/8/15
to Jenkins Users
Hello everybody,

Currently I am confused about the build sequence determined by Jenkins under the following circumstances.
The company I am working at operates a Jenkins server with about 180 Maven build jobs. There are dependencies between the Maven projects defined in their pom.xml.
The upstream/downstream project relations on each job page are as they have to be expected, so Jenkins determines them correctly from the poms.
Each job has the "Block build when upstream project is building" flag set, the "Block build when downstream project is building" flag cleared, and a "Quiet period" of 120 sec.
The SCM behind this setup is Subversion. Each project polls SVN every 2 minutes for updates as build trigger.
The Jenkins version is 1.632, but has been updated from a one-year-old installation.

Assume two projects "projA" and "testA", where testA depends on projA.
Whenever I trigger build of projA manually, Jenkins builds testA afterwards as expected.

What confuses me: whenever changes in projA and testA are committed to SVN in one big commit, it is undetermined which of both projects Jenkins builds first.
Often it is testA, and some seconds later Jenkins starts projA.
This results 
1. in a build failure of testA, because prerequisites in projA have not been built yet,
2. then build of projA and triggered by it build of testA, which now succeeds.
So Jenkins does not consider the project dependencies of projects affected by one SVN commit.
But this was my expectation. Am I wrong?

Thanx in advance for any answer.

James Nord

unread,
Nov 8, 2015, 5:53:05 PM11/8/15
to Jenkins Users
Short answer - yes.

Each project is polling individually.

Martin Schmude

unread,
Nov 10, 2015, 10:37:56 AM11/10/15
to Jenkins Users
Not what I would have liked to hear, but I already guessed so. Anyway, thank you James.
Does anybody know a well-established way of handling situations like this in Jenkins? Or maybe good sources of guidance out there in the WWW?
Reply all
Reply to author
Forward
0 new messages