Add parameters for compass CI deployment
[releng.git] / jjb / compass4nfv / compass-ci-jobs.yml
1 - project:
2
3     name: compass-ci
4
5     installer: 'compass'
6
7     project: 'compass4nfv'
8
9     master: &master
10         stream: master
11         branch: '{stream}'
12         gs-pathname: ''
13         ppa-pathname: '/{stream}'
14         disabled: false
15         openstack-version: ocata
16     danube: &danube
17         stream: danube
18         branch: 'stable/{stream}'
19         gs-pathname: '/{stream}'
20         ppa-pathname: '/{stream}'
21         disabled: false
22         openstack-version: newton
23 #--------------------------------
24 # POD, INSTALLER, AND BRANCH MAPPING
25 #--------------------------------
26 #        CI PODs
27 #--------------------------------
28     pod:
29         - baremetal:
30             slave-label: compass-baremetal-master
31             os-version: 'xenial'
32             <<: *master
33         - virtual:
34             slave-label: compass-virtual-master
35             os-version: 'xenial'
36             <<: *master
37         - baremetal:
38             slave-label: compass-baremetal-branch
39             os-version: 'xenial'
40             <<: *danube
41         - virtual:
42             slave-label: compass-virtual-branch
43             os-version: 'xenial'
44             <<: *danube
45 #--------------------------------
46 #        master
47 #--------------------------------
48         - baremetal-centos:
49             slave-label: 'intel-pod8'
50             os-version: 'centos7'
51             <<: *master
52
53     scenario:
54         - 'os-nosdn-nofeature-ha':
55             disabled: false
56             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
57         - 'os-odl_l2-nofeature-ha':
58             disabled: false
59             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
60         - 'os-odl_l3-nofeature-ha':
61             disabled: false
62             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
63         - 'os-onos-nofeature-ha':
64             disabled: false
65             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
66         - 'os-ocl-nofeature-ha':
67             disabled: false
68             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
69         - 'os-onos-sfc-ha':
70             disabled: false
71             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
72         - 'os-odl_l2-moon-ha':
73             disabled: false
74             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
75         - 'os-nosdn-kvm-ha':
76             disabled: false
77             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
78         - 'os-nosdn-openo-ha':
79             disabled: false
80             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
81
82
83     jobs:
84         - 'compass-{scenario}-{pod}-daily-{stream}'
85         - 'compass-deploy-{pod}-daily-{stream}'
86
87 ########################
88 # job templates
89 ########################
90 - job-template:
91     name: 'compass-{scenario}-{pod}-daily-{stream}'
92
93     disabled: '{obj:disabled}'
94
95     concurrent: true
96
97     properties:
98         - logrotate-default
99         - throttle:
100             enabled: true
101             max-per-node: 1
102             option: 'project'
103         - build-blocker:
104             use-build-blocker: true
105             blocking-jobs:
106                 - 'compass-os-.*?-{pod}-daily-.*?'
107                 - 'compass-os-.*?-baremetal-daily-.*?'
108                 - 'compass-verify-[^-]*-[^-]*'
109             block-level: 'NODE'
110
111     wrappers:
112         - build-name:
113             name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
114         - fix-workspace-permissions
115
116     parameters:
117         - project-parameter:
118             project: '{project}'
119             branch: '{branch}'
120         - compass-ci-parameter:
121             installer: '{installer}'
122             gs-pathname: '{gs-pathname}'
123             ppa-pathname: '{ppa-pathname}'
124         - string:
125             name: DEPLOY_SCENARIO
126             default: '{scenario}'
127         - '{slave-label}-defaults'
128         - '{installer}-defaults'
129
130     triggers:
131         - '{auto-trigger-name}'
132
133     builders:
134         - description-setter:
135             description: "POD: $NODE_NAME"
136         - trigger-builds:
137             - project: 'compass-deploy-{pod}-daily-{stream}'
138               current-parameters: true
139               predefined-parameters: |
140                 DEPLOY_SCENARIO={scenario}
141                 COMPASS_OS_VERSION={os-version}
142                 COMPASS_OPENSTACK_VERSION={openstack-version}
143               same-node: true
144               block: true
145         - trigger-builds:
146             - project: 'functest-compass-{pod}-daily-{stream}'
147               current-parameters: false
148               predefined-parameters:
149                 DEPLOY_SCENARIO={scenario}
150               same-node: true
151               block: true
152               block-thresholds:
153                 build-step-failure-threshold: 'never'
154                 failure-threshold: 'never'
155                 unstable-threshold: 'FAILURE'
156         - trigger-builds:
157             - project: 'yardstick-compass-{pod}-daily-{stream}'
158               current-parameters: false
159               predefined-parameters:
160                 DEPLOY_SCENARIO={scenario}
161               block: true
162               same-node: true
163               block-thresholds:
164                 build-step-failure-threshold: 'never'
165                 failure-threshold: 'never'
166                 unstable-threshold: 'FAILURE'
167         # dovetail only master by now, not sync with A/B/C branches
168         # here the stream means the SUT stream, dovetail stream is defined in its own job
169         # only run on os-(nosdn|odl_l2|onos|odl_l3)-nofeature-ha scenario
170         # run against SUT master branch, dovetail docker image with latest tag
171         # run against SUT danube branch, dovetail docker image with latest tag(odd days)and cvp.X.X.X tag(even days)
172         - conditional-step:
173             condition-kind: and
174             condition-operands:
175                 - condition-kind: regex-match
176                   regex: danube
177                   label: '{stream}'
178                 - condition-kind: regex-match
179                   regex: os-(nosdn|odl_l2|onos|odl_l3)-nofeature-ha
180                   label: '{scenario}'
181                 - condition-kind: day-of-week
182                   day-selector: select-days
183                   days:
184                       MON: true
185                       WED: true
186                       FRI: true
187                       SUN: true
188                   use-build-time: true
189             steps:
190                 - trigger-builds:
191                     - project: 'dovetail-compass-{pod}-proposed_tests-{stream}'
192                       current-parameters: false
193                       predefined-parameters: |
194                         DOCKER_TAG=latest
195                         DEPLOY_SCENARIO={scenario}
196                       block: true
197                       same-node: true
198                       block-thresholds:
199                         build-step-failure-threshold: 'never'
200                         failure-threshold: 'never'
201                         unstable-threshold: 'FAILURE'
202         - conditional-step:
203             condition-kind: and
204             condition-operands:
205                 - condition-kind: regex-match
206                   regex: danube
207                   label: '{stream}'
208                 - condition-kind: regex-match
209                   regex: os-(nosdn|odl_l2|onos|odl_l3)-nofeature-ha
210                   label: '{scenario}'
211                 - condition-kind: day-of-week
212                   day-selector: select-days
213                   days:
214                       TUES: true
215                       THURS: true
216                       SAT: true
217                   use-build-time: true
218             steps:
219                 - trigger-builds:
220                     - project: 'dovetail-compass-{pod}-proposed_tests-{stream}'
221                       current-parameters: false
222                       predefined-parameters:
223                         DEPLOY_SCENARIO={scenario}
224                       block: true
225                       same-node: true
226                       block-thresholds:
227                         build-step-failure-threshold: 'never'
228                         failure-threshold: 'never'
229                         unstable-threshold: 'FAILURE'
230         - conditional-step:
231             condition-kind: and
232             condition-operands:
233                 - condition-kind: regex-match
234                   regex: os-(nosdn|odl_l2|onos|odl_l3)-nofeature-ha
235                   label: '{scenario}'
236                 - condition-kind: regex-match
237                   regex: master
238                   label: '{stream}'
239             steps:
240                 - trigger-builds:
241                     - project: 'dovetail-compass-{pod}-proposed_tests-{stream}'
242                       current-parameters: false
243                       predefined-parameters:
244                         DEPLOY_SCENARIO={scenario}
245                       block: true
246                       same-node: true
247                       block-thresholds:
248                         build-step-failure-threshold: 'never'
249                         failure-threshold: 'never'
250                         unstable-threshold: 'FAILURE'
251
252 - job-template:
253     name: 'compass-deploy-{pod}-daily-{stream}'
254
255     disabled: false
256
257     concurrent: true
258
259     properties:
260         - logrotate-default
261         - throttle:
262             enabled: true
263             max-per-node: 1
264             option: 'project'
265         - build-blocker:
266             use-build-blocker: true
267             blocking-jobs:
268                 - 'compass-deploy-{pod}-daily-.*?'
269                 - 'compass-verify-deploy-.*?'
270             block-level: 'NODE'
271
272     wrappers:
273         - build-name:
274             name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
275         - timeout:
276             timeout: 240
277             abort: true
278         - fix-workspace-permissions
279
280     parameters:
281         - project-parameter:
282             project: '{project}'
283             branch: '{branch}'
284         - compass-ci-parameter:
285             installer: '{installer}'
286             gs-pathname: '{gs-pathname}'
287             ppa-pathname: '{ppa-pathname}'
288         - '{slave-label}-defaults'
289         - '{installer}-defaults'
290
291     scm:
292         - git-scm
293
294     builders:
295         - description-setter:
296             description: "POD: $NODE_NAME"
297         - conditional-step:
298             condition-kind: regex-match
299             regex: master
300             label: '{stream}'
301             steps:
302                 - shell:
303                     !include-raw-escape: ./compass-build.sh
304                 - shell:
305                     !include-raw-escape: ./compass-deploy.sh
306         - conditional-step:
307             condition-kind: regex-match
308             regex: danube
309             label: '{stream}'
310             steps:
311                 - shell:
312                     !include-raw-escape: ./compass-download-artifact.sh
313                 - shell:
314                     !include-raw-escape: ./compass-deploy.sh
315
316
317 ########################
318 # parameter macros
319 ########################
320 - parameter:
321     name: compass-ci-parameter
322     parameters:
323         - string:
324             name: BUILD_DIRECTORY
325             default: $WORKSPACE/build_output
326             description: "Directory where the build artifact will be located upon the completion of the build."
327         - string:
328             name: GS_URL
329             default: '$GS_BASE{gs-pathname}'
330             description: "URL to Google Storage."
331         - string:
332             name: CACHE_DIRECTORY
333             default: "$HOME/opnfv/cache/$PROJECT{gs-pathname}"
334             description: "Directory where the cache to be used during the build is located."
335         - string:
336             name: PPA_REPO
337             default: "http://artifacts.opnfv.org/compass4nfv/package{ppa-pathname}"
338         - string:
339             name: PPA_CACHE
340             default: "$WORKSPACE/work/repo/"
341
342 ########################
343 # trigger macros
344 ########################
345 - trigger:
346     name: 'compass-os-nosdn-nofeature-ha-baremetal-centos-master-trigger'
347     triggers:
348         - timed: '0 19 * * *'
349 - trigger:
350     name: 'compass-os-nosdn-openo-ha-baremetal-centos-master-trigger'
351     triggers:
352         - timed: ''
353 - trigger:
354     name: 'compass-os-odl_l2-nofeature-ha-baremetal-centos-master-trigger'
355     triggers:
356         - timed: '0 23 * * *'
357 - trigger:
358     name: 'compass-os-odl_l3-nofeature-ha-baremetal-centos-master-trigger'
359     triggers:
360         - timed: '0 15 * * *'
361 - trigger:
362     name: 'compass-os-onos-nofeature-ha-baremetal-centos-master-trigger'
363     triggers:
364         - timed: ''
365 - trigger:
366     name: 'compass-os-ocl-nofeature-ha-baremetal-centos-master-trigger'
367     triggers:
368         - timed: ''
369 - trigger:
370     name: 'compass-os-onos-sfc-ha-baremetal-centos-master-trigger'
371     triggers:
372         - timed: ''
373 - trigger:
374     name: 'compass-os-odl_l2-moon-ha-baremetal-centos-master-trigger'
375     triggers:
376         - timed: ''
377 - trigger:
378     name: 'compass-os-nosdn-kvm-ha-baremetal-centos-master-trigger'
379     triggers:
380         - timed: ''
381
382 - trigger:
383     name: 'compass-os-nosdn-nofeature-ha-baremetal-master-trigger'
384     triggers:
385         - timed: '0 2 * * *'
386 - trigger:
387     name: 'compass-os-nosdn-openo-ha-baremetal-master-trigger'
388     triggers:
389         - timed: ''
390 - trigger:
391     name: 'compass-os-odl_l2-nofeature-ha-baremetal-master-trigger'
392     triggers:
393         - timed: '0 22 * * *'
394 - trigger:
395     name: 'compass-os-odl_l3-nofeature-ha-baremetal-master-trigger'
396     triggers:
397         - timed: '0 18 * * *'
398 - trigger:
399     name: 'compass-os-onos-nofeature-ha-baremetal-master-trigger'
400     triggers:
401         - timed: ''
402 - trigger:
403     name: 'compass-os-ocl-nofeature-ha-baremetal-master-trigger'
404     triggers:
405         - timed: ''
406 - trigger:
407     name: 'compass-os-onos-sfc-ha-baremetal-master-trigger'
408     triggers:
409         - timed: ''
410 - trigger:
411     name: 'compass-os-odl_l2-moon-ha-baremetal-master-trigger'
412     triggers:
413         - timed: ''
414 - trigger:
415     name: 'compass-os-nosdn-kvm-ha-baremetal-master-trigger'
416     triggers:
417         - timed: '0 14 * * *'
418
419 - trigger:
420     name: 'compass-os-nosdn-nofeature-ha-baremetal-danube-trigger'
421     triggers:
422         - timed: '0 9 * * *'
423 - trigger:
424     name: 'compass-os-nosdn-openo-ha-baremetal-danube-trigger'
425     triggers:
426         - timed: '0 13 * * *'
427 - trigger:
428     name: 'compass-os-odl_l2-nofeature-ha-baremetal-danube-trigger'
429     triggers:
430         - timed: '0 17 * * *'
431 - trigger:
432     name: 'compass-os-odl_l3-nofeature-ha-baremetal-danube-trigger'
433     triggers:
434         - timed: '0 21 * * *'
435 - trigger:
436     name: 'compass-os-onos-nofeature-ha-baremetal-danube-trigger'
437     triggers:
438         - timed: '0 1 * * *'
439 - trigger:
440     name: 'compass-os-ocl-nofeature-ha-baremetal-danube-trigger'
441     triggers:
442         - timed: ''
443 - trigger:
444     name: 'compass-os-onos-sfc-ha-baremetal-danube-trigger'
445     triggers:
446         - timed: '0 5 * * *'
447 - trigger:
448     name: 'compass-os-odl_l2-moon-ha-baremetal-danube-trigger'
449     triggers:
450         - timed: ''
451 - trigger:
452     name: 'compass-os-nosdn-kvm-ha-baremetal-danube-trigger'
453     triggers:
454         - timed: ''
455
456 - trigger:
457     name: 'compass-os-nosdn-nofeature-ha-virtual-master-trigger'
458     triggers:
459         - timed: '0 21 * * *'
460 - trigger:
461     name: 'compass-os-nosdn-openo-ha-virtual-master-trigger'
462     triggers:
463         - timed: ''
464 - trigger:
465     name: 'compass-os-odl_l2-nofeature-ha-virtual-master-trigger'
466     triggers:
467         - timed: '0 20 * * *'
468 - trigger:
469     name: 'compass-os-odl_l3-nofeature-ha-virtual-master-trigger'
470     triggers:
471         - timed: '0 19 * * *'
472 - trigger:
473     name: 'compass-os-onos-nofeature-ha-virtual-master-trigger'
474     triggers:
475         - timed: ''
476 - trigger:
477     name: 'compass-os-ocl-nofeature-ha-virtual-master-trigger'
478     triggers:
479         - timed: ''
480 - trigger:
481     name: 'compass-os-onos-sfc-ha-virtual-master-trigger'
482     triggers:
483         - timed: ''
484 - trigger:
485     name: 'compass-os-odl_l2-moon-ha-virtual-master-trigger'
486     triggers:
487         - timed: ''
488 - trigger:
489     name: 'compass-os-nosdn-kvm-ha-virtual-master-trigger'
490     triggers:
491         - timed: '0 23 * * *'
492
493 - trigger:
494     name: 'compass-os-nosdn-nofeature-ha-virtual-danube-trigger'
495     triggers:
496         - timed: '0 21 * * *'
497 - trigger:
498     name: 'compass-os-nosdn-openo-ha-virtual-danube-trigger'
499     triggers:
500         - timed: '0 22 * * *'
501 - trigger:
502     name: 'compass-os-odl_l2-nofeature-ha-virtual-danube-trigger'
503     triggers:
504         - timed: '0 20 * * *'
505 - trigger:
506     name: 'compass-os-odl_l3-nofeature-ha-virtual-danube-trigger'
507     triggers:
508         - timed: '0 19 * * *'
509 - trigger:
510     name: 'compass-os-onos-nofeature-ha-virtual-danube-trigger'
511     triggers:
512         - timed: '0 18 * * *'
513 - trigger:
514     name: 'compass-os-ocl-nofeature-ha-virtual-danube-trigger'
515     triggers:
516         - timed: ''
517 - trigger:
518     name: 'compass-os-onos-sfc-ha-virtual-danube-trigger'
519     triggers:
520         - timed: '0 15 * * *'
521 - trigger:
522     name: 'compass-os-odl_l2-moon-ha-virtual-danube-trigger'
523     triggers:
524         - timed: '0 14 * * *'
525 - trigger:
526     name: 'compass-os-nosdn-kvm-ha-virtual-danube-trigger'
527     triggers:
528         - timed: ''