author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Tue, 22 Nov 2016 21:19:13 +0000 | |
changeset 79 | 1058962ee3ef |
parent 70 | 8e73f248c6d4 |
child 80 | c213d491e876 |
child 90 | 9f574fad295d |
permissions | -rw-r--r-- |
69
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1 |
/* |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
2 |
* Jenkins Pipeline definitions for Smalltalk/X jv-branch |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
3 |
* |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
4 |
* Following pipelines are defined here: |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
5 |
* |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
6 |
* * `build()` - compiles and tests all supported configurations |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
7 |
* No artifacts are archived |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
8 |
* |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
9 |
* * `integration()` - like `build()` pipeline, then all test pass on all |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
10 |
* configurations, archive artifacts and push staged changes to opstream. |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
11 |
*/ |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
12 |
|
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
13 |
|
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
14 |
/* |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
15 |
* Supported configurations |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
16 |
*/ |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
17 |
configurations = [ |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
18 |
'NODE': ['windows' , 'linux' ], |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
19 |
'ARCH': ['i386', 'x86_64' ] |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
20 |
] |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
21 |
|
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
22 |
|
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
23 |
/* |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
24 |
* "Default" pipeline: |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
25 |
*/ |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
26 |
def build() { |
70
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
27 |
stage ( "Build" ) { |
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
28 |
matrix ( configurations ) { |
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
29 |
stage ( "Checkout - {${env.NODE}-${env.ARCH}} " ) { |
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
30 |
sshagent([ scm.getCredentialsId() ]) { |
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
31 |
sh """ |
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
32 |
if [ -f Jenkinsfile.rb ]; then |
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
33 |
hg pull ${scm.getSource()} |
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
34 |
else |
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
35 |
hg clone ${scm.getSource()} . |
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
36 |
fi |
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
37 |
hg up ${scm.getBranch()} |
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
38 |
""" |
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
39 |
sh "ruby Jenkinsfile.rb --project \"stx:jv-branch\" --arch ${env.ARCH} --repository-set \"ci-jv\" update" |
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
40 |
} |
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
41 |
} |
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
42 |
|
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
43 |
stage ( "Compile - {${env.NODE}-${env.ARCH}}") { |
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
44 |
sh "ruby Jenkinsfile.rb --project \"stx:jv-branch\" compile" |
69
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
45 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
46 |
} |
70
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
47 |
} |
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
48 |
} |
69
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
49 |
|
70
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
50 |
def test() { |
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
51 |
stage ( "Test" ) { |
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
52 |
matrix ( configurations ) { |
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
53 |
stage ( "Test - {${env.NODE}-${env.ARCH}}") { |
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
54 |
sh "ruby Jenkinsfile.rb --project \"stx:jv-branch\" test" |
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
55 |
junit allowEmptyResults: true, testResults: "reports/*build${env.BUILD_NUMBER}*.xml" |
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
56 |
} |
69
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
57 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
58 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
59 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
60 |
|
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
61 |
/* |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
62 |
* "Integration" pipeline |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
63 |
*/ |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
64 |
def integration() { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
65 |
build() |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
66 |
/* |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
67 |
* If a single test fails, abort the pipeline. There's no point |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
68 |
* archiving a broken build. |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
69 |
*/ |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
70 |
if (currentBuild.result == 'UNSTABLE') { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
71 |
return; |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
72 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
73 |
artifacts() |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
74 |
push_to_upstream() |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
75 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
76 |
|
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
77 |
def combine(configurations, axes = null, axis = 0, partial = new HashMap(), combinations = []) { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
78 |
def axes0 = axes |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
79 |
if (axes0 == null) { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
80 |
axes0 = configurations.keySet().toArray(); |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
81 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
82 |
if ( axis < axes0.length ) { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
83 |
for ( value in configurations[axes0[axis]] ) { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
84 |
def combined = partial.clone() |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
85 |
combined[axes0[axis]] = value |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
86 |
combine(configurations, axes0, axis + 1, combined, combinations) |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
87 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
88 |
} else { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
89 |
combinations.add(partial) |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
90 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
91 |
return combinations; |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
92 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
93 |
|
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
94 |
|
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
95 |
def matrix(configurations, block) { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
96 |
def combinations = combine(configurations).toArray() |
70
8e73f248c6d4
Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
97 |
def branches = [failFast: true] |
69
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
98 |
for (i = 0; i < combinations.length; i++) { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
99 |
def index = i |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
100 |
def conf = combinations[i]; |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
101 |
branches["${conf.NODE}-${conf.ARCH}"] = { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
102 |
node ( conf.NODE ) { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
103 |
def newEnv = [] |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
104 |
for (k in conf.keySet()) { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
105 |
newEnv.add("${k}=${conf[k]}") |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
106 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
107 |
withEnv ( newEnv ) { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
108 |
ws ("workspace/${env.JOB_NAME}/${env.ARCH}") { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
109 |
block() |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
110 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
111 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
112 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
113 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
114 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
115 |
parallel branches |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
116 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
117 |
|
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
118 |
|
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
119 |
|
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
120 |
def any(configurations, block) { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
121 |
def axes = configurations.keySet().toArray() |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
122 |
def conf = [:] |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
123 |
for (axis in axes) { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
124 |
conf[axis] = configurations[axis][0] |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
125 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
126 |
node ( conf.NODE ) { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
127 |
def newEnv = [] |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
128 |
for (k in conf.keySet()) { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
129 |
newEnv.add("${k}=${conf[k]}") |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
130 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
131 |
withEnv ( newEnv ) { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
132 |
ws ("workspace/${env.JOB_NAME}/${env.ARCH}") { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
133 |
block() |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
134 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
135 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
136 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
137 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
138 |
|
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
139 |
|
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
140 |
def artifacts() { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
141 |
matrix ( configurations ) { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
142 |
stage ( "Artifacts - {${env.NODE}-${env.ARCH}}") { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
143 |
sh "ruby Jenkinsfile.rb --project \"stx:jv-branch\" artifacts" |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
144 |
archiveArtifacts artifacts: "artifacts/*build${env.BUILD_NUMBER}*.zip, artifacts/*build${env.BUILD_NUMBER}*.bz2, artifacts/*build${env.BUILD_NUMBER}*.sha256", fingerprint: true//, onlyIfSuccessful: true |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
145 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
146 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
147 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
148 |
|
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
149 |
def push_to_upstream() { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
150 |
any ( configurations ) { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
151 |
withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: '1c40eb8f-c7ff-4ef7-8fc8-96aa6310907c', passwordVariable: 'pass', usernameVariable: 'user']]) { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
152 |
sh "rake \"workflow:push-upstream[${user}, ${pass}]\"" |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
153 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
154 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
155 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
156 |
|
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
157 |
|
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
158 |
|
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
159 |
|
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
160 |
/* |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
161 |
* A test pipeline. Does not build anything but usefull for |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
162 |
* testing configuration and matrix() / any() functions |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
163 |
*/ |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
164 |
def test_pipeline() { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
165 |
matrix( configurations ) { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
166 |
echo "Testing matrix() ${env.NODE}, ${env.ARCH}" |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
167 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
168 |
|
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
169 |
any ( configurations ) { |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
170 |
echo "Testing any() ${env.NODE}, ${env.ARCH}" |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
171 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
172 |
} |
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
173 |
|
23cdc822cfc5
Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
174 |
return this; |