armband: Use labels for pods and schedule jobs
[releng.git] / jjb / armband / armband-ci-jobs.yml
1 # jenkins job templates for Armband
2 - project:
3     name: 'armband-ci'
4     project: 'armband'
5
6 #--------------------------------
7 # BRANCH ANCHORS
8 #--------------------------------
9     master: &master
10         stream: master
11         branch: '{stream}'
12         gs-pathname: ''
13     colorado: &colorado
14         stream: colorado
15         branch: 'stable/{stream}'
16         gs-pathname: '/{stream}'
17 #--------------------------------
18 # POD, INSTALLER, AND BRANCH MAPPING
19 #--------------------------------
20 # CI POD's
21 #--------------------------------
22 #        colorado
23 #--------------------------------
24     pod:
25         - baremetal:
26             slave-label: armband-baremetal
27             installer: fuel
28             <<: *colorado
29         - virtual:
30             slave-label: armband-virtual
31             installer: fuel
32             <<: *colorado
33 #--------------------------------
34 #        master
35 #--------------------------------
36         - baremetal:
37             slave-label: armband-baremetal
38             installer: fuel
39             <<: *master
40         - virtual:
41             slave-label: armband-virtual
42             installer: fuel
43             <<: *master
44 #--------------------------------
45 # NONE-CI POD's
46 #--------------------------------
47 #        colorado
48 #--------------------------------
49         - arm-pod2:
50             slave-label: arm-pod2
51             installer: fuel
52             <<: *colorado
53 #--------------------------------
54 #        master
55 #--------------------------------
56         - arm-pod2:
57             slave-label: arm-pod2
58             installer: fuel
59             <<: *master
60 #--------------------------------
61 #       scenarios
62 #--------------------------------
63     scenario:
64         # HA scenarios
65         - 'os-nosdn-nofeature-ha':
66             auto-trigger-name: 'armband-{installer}-{scenario}-{pod}-{stream}-trigger'
67         - 'os-odl_l2-nofeature-ha':
68             auto-trigger-name: 'armband-{installer}-{scenario}-{pod}-{stream}-trigger'
69         - 'os-odl_l3-nofeature-ha':
70             auto-trigger-name: 'armband-{installer}-{scenario}-{pod}-{stream}-trigger'
71         - 'os-odl_l2-bgpvpn-ha':
72             auto-trigger-name: 'armband-{installer}-{scenario}-{pod}-{stream}-trigger'
73
74         # NOHA scenarios
75         - 'os-odl_l2-nofeature-noha':
76             auto-trigger-name: 'armband-{installer}-{scenario}-{pod}-{stream}-trigger'
77
78     jobs:
79         - 'armband-{installer}-{scenario}-{pod}-daily-{stream}'
80         - 'armband-{installer}-deploy-{pod}-daily-{stream}'
81
82 ########################
83 # job templates
84 ########################
85 - job-template:
86     name: 'armband-{installer}-{scenario}-{pod}-daily-{stream}'
87
88     concurrent: false
89
90     properties:
91         - throttle:
92             enabled: true
93             max-total: 1
94             max-per-node: 1
95             option: 'project'
96         - build-blocker:
97             use-build-blocker: true
98             blocking-jobs:
99                 - 'armband-{installer}-os-.*?-{pod}-daily-.*'
100             block-level: 'NODE'
101
102     wrappers:
103         - build-name:
104             name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
105
106     triggers:
107         - '{auto-trigger-name}'
108
109     parameters:
110         - project-parameter:
111             project: '{project}'
112         - '{installer}-defaults'
113         - '{slave-label}-defaults':
114             installer: '{installer}'
115         - string:
116             name: DEPLOY_SCENARIO
117             default: '{scenario}'
118         - armband-ci-parameter:
119             gs-pathname: '{gs-pathname}'
120
121     builders:
122         - trigger-builds:
123             - project: 'armband-{installer}-deploy-{pod}-daily-{stream}'
124               current-parameters: false
125               predefined-parameters:
126                 DEPLOY_SCENARIO={scenario}
127               same-node: true
128               block: true
129         - trigger-builds:
130             - project: 'functest-{installer}-{pod}-daily-{stream}'
131               current-parameters: false
132               predefined-parameters:
133                 DEPLOY_SCENARIO={scenario}
134               block: true
135               same-node: true
136               block-thresholds:
137                 build-step-failure-threshold: 'never'
138                 failure-threshold: 'never'
139                 unstable-threshold: 'FAILURE'
140
141 - job-template:
142     name: 'armband-{installer}-deploy-{pod}-daily-{stream}'
143
144     concurrent: false
145
146     properties:
147         - throttle:
148             enabled: true
149             max-total: 1
150             max-per-node: 1
151             option: 'project'
152         - build-blocker:
153             use-build-blocker: true
154             blocking-jobs:
155                 - 'armband-{installer}-deploy-{pod}-daily-{stream}'
156                 - 'armband-{installer}-deploy-generic-daily-.*'
157             block-level: 'NODE'
158
159     parameters:
160         - project-parameter:
161             project: '{project}'
162         - '{installer}-defaults'
163         - '{slave-label}-defaults':
164             installer: '{installer}'
165         - string:
166             name: DEPLOY_SCENARIO
167             default: 'os-odl_l2-nofeature-ha'
168         - armband-ci-parameter:
169             gs-pathname: '{gs-pathname}'
170
171     scm:
172         - git-scm:
173             credentials-id: '{ssh-credentials}'
174             refspec: ''
175             branch: '{branch}'
176
177     wrappers:
178         - build-name:
179             name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
180
181     builders:
182         - shell:
183             !include-raw-escape: ./armband-download-artifact.sh
184         - shell:
185             !include-raw-escape: ./armband-deploy.sh
186
187     publishers:
188         - email:
189             recipients: armband@enea.com
190
191 ########################
192 # parameter macros
193 ########################
194 - parameter:
195     name: armband-ci-parameter
196     parameters:
197         - string:
198             name: BUILD_DIRECTORY
199             default: $WORKSPACE/build_output
200             description: "Directory where the build artifact will be located upon the completion of the build."
201         - string:
202             name: CACHE_DIRECTORY
203             default: $HOME/opnfv/cache/$INSTALLER_TYPE
204             description: "Directory where the cache to be used during the build is located."
205         - string:
206             name: GS_URL
207             default: artifacts.opnfv.org/$PROJECT{gs-pathname}
208             description: "URL to Google Storage."
209
210 ########################
211 # trigger macros
212 ########################
213 # CI PODs
214 #-----------------------------------------------------------------
215 # Enea Armband CI Baremetal Triggers running against master branch
216 #-----------------------------------------------------------------
217 - trigger:
218     name: 'armband-fuel-os-odl_l2-nofeature-ha-baremetal-master-trigger'
219     triggers:
220         - timed: '0 3 * * 1'
221 - trigger:
222     name: 'armband-fuel-os-nosdn-nofeature-ha-baremetal-master-trigger'
223     triggers:
224         - timed: '0 3 * * 2'
225 - trigger:
226     name: 'armband-fuel-os-odl_l3-nofeature-ha-baremetal-master-trigger'
227     triggers:
228         - timed: '0 3 * * 3'
229 - trigger:
230     name: 'armband-fuel-os-odl_l2-bgpvpn-ha-baremetal-master-trigger'
231     triggers:
232         - timed: '0 3 * * 4'
233 - trigger:
234     name: 'armband-fuel-os-odl_l2-nofeature-noha-baremetal-master-trigger'
235     triggers:
236         - timed: '0 3 * * 5'
237 #----------------------------------------------------------------------
238 # Enea Armband CI Baremetal Triggers running against brahmaputra branch
239 #----------------------------------------------------------------------
240 - trigger:
241     name: 'armband-fuel-os-odl_l2-nofeature-ha-baremetal-colorado-trigger'
242     triggers:
243         - timed: '0 15 * * 1'
244 - trigger:
245     name: 'armband-fuel-os-nosdn-nofeature-ha-baremetal-colorado-trigger'
246     triggers:
247         - timed: '0 15 * * 2'
248 - trigger:
249     name: 'armband-fuel-os-odl_l3-nofeature-ha-baremetal-colorado-trigger'
250     triggers:
251         - timed: '0 15 * * 3'
252 - trigger:
253     name: 'armband-fuel-os-odl_l2-bgpvpn-ha-baremetal-colorado-trigger'
254     triggers:
255         - timed: '0 15 * * 4'
256 - trigger:
257     name: 'armband-fuel-os-odl_l2-nofeature-noha-baremetal-colorado-trigger'
258     triggers:
259         - timed: '0 15 * * 5'
260 #---------------------------------------------------------------
261 # Enea Armband CI Virtual Triggers running against master branch
262 #---------------------------------------------------------------
263 - trigger:
264     name: 'armband-fuel-os-odl_l2-nofeature-ha-virtual-master-trigger'
265     triggers:
266         - timed: ''
267 - trigger:
268     name: 'armband-fuel-os-nosdn-nofeature-ha-virtual-master-trigger'
269     triggers:
270         - timed: ''
271 - trigger:
272     name: 'armband-fuel-os-odl_l3-nofeature-ha-virtual-master-trigger'
273     triggers:
274         - timed: ''
275 - trigger:
276     name: 'armband-fuel-os-odl_l2-bgpvpn-ha-virtual-master-trigger'
277     triggers:
278         - timed: ''
279 - trigger:
280     name: 'armband-fuel-os-odl_l2-nofeature-noha-virtual-master-trigger'
281     triggers:
282         - timed: ''
283 #--------------------------------------------------------------------
284 # Enea Armband CI Virtual Triggers running against brahmaputra branch
285 #--------------------------------------------------------------------
286 - trigger:
287     name: 'armband-fuel-os-odl_l2-nofeature-ha-virtual-colorado-trigger'
288     triggers:
289         - timed: ''
290 - trigger:
291     name: 'armband-fuel-os-nosdn-nofeature-ha-virtual-colorado-trigger'
292     triggers:
293         - timed: ''
294 - trigger:
295     name: 'armband-fuel-os-odl_l3-nofeature-ha-virtual-colorado-trigger'
296     triggers:
297         - timed: ''
298 - trigger:
299     name: 'armband-fuel-os-odl_l2-bgpvpn-ha-virtual-colorado-trigger'
300     triggers:
301         - timed: ''
302 - trigger:
303     name: 'armband-fuel-os-odl_l2-nofeature-noha-virtual-colorado-trigger'
304     triggers:
305         - timed: ''
306 #----------------------------------------------------------
307 # Enea Armband POD 2 Triggers running against master branch
308 #----------------------------------------------------------
309 - trigger:
310     name: 'armband-fuel-os-odl_l2-nofeature-ha-arm-pod2-master-trigger'
311     triggers:
312         - timed: ''
313 - trigger:
314     name: 'armband-fuel-os-nosdn-nofeature-ha-arm-pod2-master-trigger'
315     triggers:
316         - timed: ''
317 - trigger:
318     name: 'armband-fuel-os-odl_l3-nofeature-ha-arm-pod2-master-trigger'
319     triggers:
320         - timed: ''
321 - trigger:
322     name: 'armband-fuel-os-odl_l2-bgpvpn-ha-arm-pod2-master-trigger'
323     triggers:
324         - timed: ''
325 - trigger:
326     name: 'armband-fuel-os-odl_l2-nofeature-noha-arm-pod2-master-trigger'
327     triggers:
328         - timed: ''
329 #---------------------------------------------------------------
330 # Enea Armband POD 2 Triggers running against brahmaputra branch
331 #---------------------------------------------------------------
332 - trigger:
333     name: 'armband-fuel-os-odl_l2-nofeature-ha-arm-pod2-colorado-trigger'
334     triggers:
335         - timed: ''
336 - trigger:
337     name: 'armband-fuel-os-nosdn-nofeature-ha-arm-pod2-colorado-trigger'
338     triggers:
339         - timed: ''
340 - trigger:
341     name: 'armband-fuel-os-odl_l3-nofeature-ha-arm-pod2-colorado-trigger'
342     triggers:
343         - timed: ''
344 - trigger:
345     name: 'armband-fuel-os-odl_l2-bgpvpn-ha-arm-pod2-colorado-trigger'
346     triggers:
347         - timed: ''
348 - trigger:
349     name: 'armband-fuel-os-odl_l2-nofeature-noha-arm-pod2-colorado-trigger'
350     triggers:
351         - timed: ''