You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2016/09/29 13:50:14 UTC

svn commit: r1762775 - /sling/trunk/tooling/jenkins/create_jobs.groovy

Author: rombert
Date: Thu Sep 29 13:50:13 2016
New Revision: 1762775

URL: http://svn.apache.org/viewvc?rev=1762775&view=rev
Log:
SLING-6061 - Create per-module Jenkins jobs

Configure inter-job dependencies automatically using
the Jenkins Maven plugin.

Modified:
    sling/trunk/tooling/jenkins/create_jobs.groovy

Modified: sling/trunk/tooling/jenkins/create_jobs.groovy
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/jenkins/create_jobs.groovy?rev=1762775&r1=1762774&r2=1762775&view=diff
==============================================================================
--- sling/trunk/tooling/jenkins/create_jobs.groovy (original)
+++ sling/trunk/tooling/jenkins/create_jobs.groovy Thu Sep 29 13:50:13 2016
@@ -440,7 +440,6 @@ def modules = [
 // TODO - create launchpad jobs
 // TODO - automatic links from modules in bundles and installer (others?)
 //        to the launchpad testing jobs
-// TODO - define (or infer?) dependencies between groups of jobs (sightly, validation, etc )
 
 // should be sorted from the oldest to the latest version
 // so that artifacts built using the oldest version are
@@ -475,14 +474,38 @@ for more details</p>''')
                 svn(svnDir)
             }
 
+            // note on dependency managment
+            // we ask Jenkins to create dependencies between projects automatically
+            // if SNAPSHOT dependencies are found between projects. This might create
+            // too many dependencies, e.g. if foo-core depends on foo-core and projects
+            // build for Java 1.7 and 1.8 the following depdendencies will be created
+            //
+            // foo-api-1.7 → foo-core-1.7
+            // foo-api-1.7 → foo-core-1.8
+            // foo-api-1.8 → foo-core-1.7
+            // foo-api-1.8 → foo-core-1.8
+            //
+            // in effect we will trigger builds twice as often as needed. Since SNAPSHOT
+            // dependencies are not that often found between bundles and builds should
+            // be quick this is acceptable for now. The alternative would be to define
+            // the dependencies manually, which is cumbersome and error-prone
+
             triggers {
+                snapshotDependencies(true)
                 scm('H/15 * * * *')
             }
 
+            blockOnUpstreamProjects()
+
             jdk(jdkMapping.get(jdkKey))
 
             mavenInstallation("Maven 3.3.9")
 
+            // we have no use for archived artifacts since they are deployed on
+            // repository.apache.org so speed up the build a bit (and probably
+            // save on disk space)
+            archivingDisabled(true)
+
             label('Ubuntu&&!ubuntu3')
 
             goals(deploy ? "-U clean deploy" : "-U clean verify");