Jay Taylor's notes

back to listing index

denschu/job-dsl-examples

[web search]
Original source (github.com)
Tags: jenkins dsl github.com
Clipped on: 2016-03-07

Skip to content
job-dsl-examples / job-dsl-example.groovy
a1b79ec on Dec 24, 2014
Open this file in GitHub Desktop
105 lines (103 sloc) 2.82 KB
1 def repository = 'codecentric/spring-samples'
2 def contentApi = new URL("https://api.github.com/repos/${repository}/contents")
3 def projects = new groovy.json.JsonSlurper().parse(contentApi.newReader())
4 projects.each {
5 def projectName = it.name
6 job(type: Maven) {
7 name("${projectName}")
8 triggers { scm("*/5 * * * *") }
9 scm {
10 git {
11 remote {
12 url("https://github.com/codecentric/spring-samples")
13 }
14 createTag(false)
15 }
16 }
17 rootPOM("${projectName}/pom.xml")
18 goals("clean package")
19 wrappers {
20 preBuildCleanup()
21 release {
22 preBuildSteps {
23 maven {
24 mavenInstallation("Maven 3.0.4")
25 rootPOM("${projectName}/pom.xml")
26 goals("build-helper:parse-version")
27 goals("versions:set")
28 property("newVersion", "\${parsedVersion.majorVersion}.\${parsedVersion.minorVersion}.\${parsedVersion.incrementalVersion}-\${BUILD_NUMBER}")
29 }
30 }
31 postSuccessfulBuildSteps {
32 maven {
33 rootPOM("${projectName}/pom.xml")
34 goals("deploy")
35 }
36 maven {
37 goals("scm:tag")
38 }
39 downstreamParameterized {
40 trigger("deploy-application") {
41 predefinedProp("STAGE", "development")
42 }
43 }
44 }
45 }
46 }
47 publishers {
48 groovyPostBuild("manager.addShortText(manager.build.getEnvironment(manager.listener)[\'POM_VERSION\'])")
49 }
50 promotions {
51 promotion("Development") {
52 icon("star-red")
53 conditions {
54 manual('')
55 }
56 actions {
57 downstreamParameterized {
58 trigger("deploy-application","SUCCESS",false,["buildStepFailure": "FAILURE","failure":"FAILURE","unstable":"UNSTABLE"]) {
59 predefinedProp("ENVIRONMENT","test-server")
60 predefinedProp("APPLICATION_NAME", "\${PROMOTED_JOB_FULL_NAME}")
61 predefinedProp("BUILD_ID","\${PROMOTED_NUMBER}")
62 }
63 }
64 }
65 }
66 promotion("QA") {
67 icon("star-yellow")
68 conditions {
69 manual('')
70 upstream("Development")
71 }
72 actions {
73 downstreamParameterized {
74 trigger("deploy-application","SUCCESS",false,["buildStepFailure": "FAILURE","failure":"FAILURE","unstable":"UNSTABLE"]) {
75 predefinedProp("ENVIRONMENT","qa-server")
76 predefinedProp("APPLICATION_NAME", "\${PROMOTED_JOB_FULL_NAME}")
77 predefinedProp("BUILD_ID","\${PROMOTED_NUMBER}")
78 }
79 }
80 }
81 }
82 promotion("Production") {
83 icon("star-green")
84 conditions {
85 manual('')
86 upstream("QA")
87 }
88 actions {
89 downstreamParameterized {
90 trigger("deploy-application","SUCCESS",false,["buildStepFailure": "FAILURE","failure":"FAILURE","unstable":"UNSTABLE"]) {
91 predefinedProp("ENVIRONMENT","prod-server")
92 predefinedProp("APPLICATION_NAME", "\${PROMOTED_JOB_FULL_NAME}")
93 predefinedProp("BUILD_ID","\${PROMOTED_NUMBER}")
94 }
95 }
96 }
97 }
98 }
99 }
100 }
101
102
103 job{
104 name("deploy-application")
105 }