-
Bug
-
Resolution: Not A Defect
-
Major
-
None
-
$ mvn -version
Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200)
Java version: 1.6.0_18
Java home: /usr/java/jdk1.6.0_18/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux" version: "2.6.16.21-0.8-smp" arch: "i386" Family: "unix"
$ accurev
AccuRev 4.7.3 (09/24/2009) Enterprise Edition$ mvn -version Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200) Java version: 1.6.0_18 Java home: /usr/java/jdk1.6.0_18/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux" version: "2.6.16.21-0.8-smp" arch: "i386" Family: "unix" $ accurev AccuRev 4.7.3 (09/24/2009) Enterprise Edition
We have a quite large setup of Hudson with ~110 maven2 jobs categorized in server, common and full-build categories. As you'd expect, server-type jobs depend on some of the commons, and some common jobs depend on each other. Jobs in server and common categories always produce one JAR per each job, run the tests and deploy the artifact in the maven repo, if the build is stable. Piece of cake.
The only job in the full-build category assembles an EAR file from the available artifacts in maven (we don't build the full product from source and I will not tell you why, there are reasons for it), deploys it to a container and says hello to developers. Piece of cake again.
Accurev is setup to trigger the appropriate job if a commit (promote) arrives in the depot, this works fine.
To formalize our setup:
jobC1 builds moduleC1 which creates and deploys artifactC1
jobC2 builds moduleC2 which creates and deploys artifactC2
jobC3 builds moduleC3 which creates and deploys artifactC3, depends on artifactC1
jobS1 builds moduleS1 which creates and deploys artifactS1, depends on artifactC1
jobS1 builds moduleS1 which creates and deploys artifactS1, depends on artifactC1, artifactC2
jobS1 builds moduleS1 which creates and deploys artifactS1, depends on artifactC2, artifactC3
jobF builds moduleF which creates artifactF (the full build), depends on all artifacts
All produced artifacts are maven2 SNAPSHOT versions. Always.
What I'd like to achieve is that if the Accurev post-promote trigger pokes jobC1 (it does), that build should create artifactC1 (it does), and after this, all jobs that depend on artifactC1 (jobS1, jobS2, jobS3) should be triggered and built. AFAIK this was achievable with the "Build whenever a SNAPSHOT dependency is built" trigger in the 1.2xx series (last time I've checked Hudson was something like a year ago), but if I check that option in all jobs, no automatic dependency building happens. I know I could check all modules manually with "build other projects", but no thanks, that would cost a week's work and would cause lots of unflexibility.
What's interesting is, though, that jobF (the full EAR assembly build) becomes the downstream job of all other jobs but it seems that it gets triggered only occasionally (or most probably never).
Any hints or tips or fixes are welcome, I'm more than happy to help investigating this issue.
We're using the most recent Hudson version (1.353) with updated plugins. The Accurev plugin uses no workspace, just pops the contents of a stream.
- is duplicated by
-
JENKINS-13390 "Build whenever a SNAPSHOT dependency is built" should work in way that is more expected
-
- Open
-
This issue is not solved.
We use version 1.443 with maven 2.
We have a project like this:
master project (pom.xml type pom)
– core project (pom.xml type jar)
– web project (pom.xml type war, depends on core)
– ear project (pom.xml type ear, depends on web)
In jenkins, we define 4 jobs, one for each module:
project-master > clean install -e -X -N (non recursive)
project-core > clean install -e -X
project-web > clean install -e -X
project-ear > clean install -e -X
And for each of them, we check the box "build whenever a snapshot dependency is built"
=> it works fine, for example, when the core is built, it triggers the web, then the ear.
The problem comes when we create a new job, let say "project-nightly" that will be executed each night on the complete project.
project-nightly > clean deploy -e -X
The creation of this last jobs breaks the triggering of all other jobs !!
So when the core is built, the web is not triggered.
And when the nightly is build, all other jobs are triggered !!!