On Mon, 2016-09-19 at 22:50 +0300, Robert Munteanu wrote: > I want to use the Job DSL plugin to define a large number of jobs > programatically, rather than maintain them by hand.
Here's a quick sample of how I intend to use the DSL plugin. First, I create a 'seed' job, in charge of generating other jobs. Then, I use the following script: def svnBase = "https://svn.apache.org/repos/asf/sling/trunk" def modules = ["bundles/extensions/i18n", "contrib/extensions/sling- pipes"] modules.each { def svnDir = svnBase +"/" + it def jobName = "sling-" + it.replaceAll('/', '-') job(jobName) { scm { svn(svnDir) } triggers { scm('H/15 * * * *') } steps { maven { goals("clean") goals("verify") mavenInstallation("Maven 3.3.9") } } } } This configures two jobs with identical settings. Of course, in the future we can configure all jobs this way, and the script will be stored in SVN. Another benefit is that if a contributor wants to reproduce a problem on Jenkins, all the effort that is required is to run Jenkins via docker, install a couple of plugins, create the seed job and all the Jenkins configuration is replicated. Robert