d8784c6780e60baaf3210f23a993f235b599fbe0
[releng.git] / jjb / apex / apex.yml
1 - project:
2     name: apex
3     jobs:
4         - 'apex-verify-{stream}'
5         - 'apex-verify-unit-tests-{stream}'
6         - 'apex-runner-{platform}-{scenario}-{stream}'
7         - 'apex-runner-cperf-{stream}'
8         - 'apex-build-{stream}'
9         - 'apex-deploy-virtual-{scenario}-{stream}'
10         - 'apex-deploy-baremetal-{scenario}-{stream}'
11         - 'apex-daily-{stream}'
12
13     # stream:    branch with - in place of / (eg. stable-arno)
14     # branch:    branch (eg. stable/arno)
15     stream:
16         - master:
17             branch: 'master'
18             gs-pathname: ''
19             slave: 'lf-pod1'
20             verify-slave: 'apex-verify-master'
21             daily-slave: 'apex-daily-master'
22
23     project: 'apex'
24
25     scenario:
26          - 'os-nosdn-nofeature-noha'
27          - 'os-nosdn-nofeature-ha'
28          - 'os-nosdn-nofeature-ha-ipv6'
29          - 'os-nosdn-ovs-noha'
30          - 'os-nosdn-fdio-noha'
31          - 'os-odl_l3-bgpvpn-ha'
32          - 'os-odl_l2-fdio-noha'
33          - 'os-odl_l2-fdio-ha'
34          - 'os-odl_l2-sfc-noha'
35          - 'os-odl_l3-nofeature-ha'
36          - 'os-onos-nofeature-ha'
37
38     platform:
39          - 'baremetal'
40          - 'virtual'
41
42 # Unit Test
43 - job-template:
44     name: 'apex-verify-unit-tests-{stream}'
45
46     node: '{verify-slave}'
47
48     concurrent: true
49
50     parameters:
51         - apex-parameter:
52             gs-pathname: '{gs-pathname}'
53         - project-parameter:
54             project: '{project}'
55         - gerrit-parameter:
56             branch: '{branch}'
57         - string:
58             name: GIT_BASE
59             default: https://gerrit.opnfv.org/gerrit/$PROJECT
60             description: "Used for overriding the GIT URL coming from parameters macro."
61
62     scm:
63         - gerrit-trigger-scm:
64             credentials-id: '{ssh-credentials}'
65             refspec: '$GERRIT_REFSPEC'
66             choosing-strategy: 'gerrit'
67
68     triggers:
69         - gerrit:
70             server-name: 'gerrit.opnfv.org'
71             trigger-on:
72                 - patchset-created-event:
73                     exclude-drafts: 'false'
74                     exclude-trivial-rebase: 'false'
75                     exclude-no-code-change: 'true'
76                 - draft-published-event
77                 - comment-added-contains-event:
78                     comment-contains-value: 'recheck'
79                 - comment-added-contains-event:
80                     comment-contains-value: 'reverify'
81             projects:
82               - project-compare-type: 'ANT'
83                 project-pattern: 'apex'
84                 branches:
85                   - branch-compare-type: 'ANT'
86                     branch-pattern: '**/{branch}'
87                 file-paths:
88                   - compare-type: ANT
89                     pattern: 'tests/**'
90     properties:
91         - throttle:
92             max-per-node: 1
93             max-total: 10
94             option: 'project'
95
96     builders:
97         - 'apex-unit-test'
98
99 # Verify
100 - job-template:
101     name: 'apex-verify-{stream}'
102
103     node: '{verify-slave}'
104
105     concurrent: true
106
107     parameters:
108         - apex-parameter:
109             gs-pathname: '{gs-pathname}'
110         - project-parameter:
111             project: '{project}'
112         - gerrit-parameter:
113             branch: '{branch}'
114         - string:
115             name: GIT_BASE
116             default: https://gerrit.opnfv.org/gerrit/$PROJECT
117             description: "Used for overriding the GIT URL coming from parameters macro."
118
119     scm:
120         - gerrit-trigger-scm:
121             credentials-id: '{ssh-credentials}'
122             refspec: '$GERRIT_REFSPEC'
123             choosing-strategy: 'gerrit'
124
125     triggers:
126         - gerrit:
127             server-name: 'gerrit.opnfv.org'
128             trigger-on:
129                 - patchset-created-event:
130                     exclude-drafts: 'false'
131                     exclude-trivial-rebase: 'false'
132                     exclude-no-code-change: 'true'
133                 - draft-published-event
134                 - comment-added-contains-event:
135                     comment-contains-value: 'recheck'
136                 - comment-added-contains-event:
137                     comment-contains-value: 'reverify'
138             projects:
139               - project-compare-type: 'ANT'
140                 project-pattern: 'apex'
141                 branches:
142                   - branch-compare-type: 'ANT'
143                     branch-pattern: '**/{branch}'
144                 file-paths:
145                   - compare-type: ANT
146                     pattern: 'ci/**'
147                   - compare-type: ANT
148                     pattern: 'build/**'
149                   - compare-type: ANT
150                     pattern: 'lib/**'
151                   - compare-type: ANT
152                     pattern: 'config/**'
153
154     properties:
155         - build-blocker:
156             use-build-blocker: true
157             block-level: 'NODE'
158             blocking-jobs:
159                 - 'apex-daily.*'
160                 - 'apex-deploy.*'
161                 - 'apex-build.*'
162                 - 'apex-runner.*'
163                 - 'apex-verify.*'
164         - throttle:
165             max-per-node: 1
166             max-total: 10
167             option: 'project'
168
169     builders:
170         - 'apex-unit-test'
171         - 'apex-build'
172         - trigger-builds:
173           - project: 'apex-deploy-virtual-os-nosdn-nofeature-ha-{stream}'
174             predefined-parameters: |
175               BUILD_DIRECTORY=apex-verify-{stream}
176               OPNFV_CLEAN=yes
177             git-revision: false
178             block: true
179             same-node: true
180         - trigger-builds:
181           - project: 'functest-apex-{verify-slave}-suite-{stream}'
182             predefined-parameters: |
183               DEPLOY_SCENARIO=os-nosdn-nofeature-ha
184               FUNCTEST_SUITE_NAME=healthcheck
185             block: true
186             same-node: true
187         - trigger-builds:
188           - project: 'apex-deploy-virtual-os-odl_l3-nofeature-ha-{stream}'
189             predefined-parameters: |
190               BUILD_DIRECTORY=apex-verify-{stream}
191               OPNFV_CLEAN=yes
192             git-revision: false
193             block: true
194             same-node: true
195         - trigger-builds:
196           - project: 'functest-apex-{verify-slave}-suite-{stream}'
197             predefined-parameters: |
198               DEPLOY_SCENARIO=os-odl_l3-nofeature-ha
199               FUNCTEST_SUITE_NAME=healthcheck
200             block: true
201             same-node: true
202         - 'apex-workspace-cleanup'
203
204 - job-template:
205     name: 'apex-runner-{platform}-{scenario}-{stream}'
206
207     # runner jobs for deploying manually
208
209     node: '{slave}'
210
211     disabled: false
212
213     parameters:
214         - apex-parameter:
215             gs-pathname: '{gs-pathname}'
216         - project-parameter:
217             project: '{project}'
218         - gerrit-parameter:
219             branch: '{branch}'
220         - string:
221             name: GIT_BASE
222             default: https://gerrit.opnfv.org/gerrit/$PROJECT
223             description: "Used for overriding the GIT URL coming from parameters macro."
224
225     scm:
226         - gerrit-trigger-scm:
227             credentials-id: '{ssh-credentials}'
228             refspec: ''
229             choosing-strategy: 'default'
230
231     properties:
232         - build-blocker:
233             use-build-blocker: true
234             blocking-jobs:
235                 - 'apex-daily.*'
236                 - 'apex-verify.*'
237
238     builders:
239         - trigger-builds:
240           - project: 'apex-deploy-{platform}-{scenario}-{stream}'
241             predefined-parameters:
242               OPNFV_CLEAN=yes
243             git-revision: false
244             block: true
245         - trigger-builds:
246           - project: 'yardstick-apex-{slave}-daily-{stream}'
247             predefined-parameters:
248               DEPLOY_SCENARIO={scenario}
249             block: true
250             block-thresholds:
251                 build-step-failure-threshold: 'never'
252                 failure-threshold: 'never'
253                 unstable-threshold: 'FAILURE'
254         - trigger-builds:
255           - project: 'functest-apex-{slave}-daily-{stream}'
256             predefined-parameters:
257               DEPLOY_SCENARIO={scenario}
258             block: true
259             block-thresholds:
260                 build-step-failure-threshold: 'never'
261                 failure-threshold: 'never'
262                 unstable-threshold: 'FAILURE'
263
264 - job-template:
265     name: 'apex-runner-cperf-{stream}'
266
267     # runner cperf job
268
269     node: 'intel-pod2'
270
271     disabled: false
272
273     parameters:
274         - apex-parameter:
275             gs-pathname: '{gs-pathname}'
276         - project-parameter:
277             project: '{project}'
278         - gerrit-parameter:
279             branch: '{branch}'
280         - string:
281             name: GIT_BASE
282             default: https://gerrit.opnfv.org/gerrit/$PROJECT
283             description: "Used for overriding the GIT URL coming from parameters macro."
284
285     scm:
286         - gerrit-trigger-scm:
287             credentials-id: '{ssh-credentials}'
288             refspec: ''
289             choosing-strategy: 'default'
290
291     properties:
292         - build-blocker:
293             use-build-blocker: false
294             block-level: 'NODE'
295             blocking-jobs:
296                 - 'apex-deploy.*'
297         - throttle:
298             max-per-node: 1
299             max-total: 10
300             option: 'project'
301
302     builders:
303         - trigger-builds:
304           - project: 'apex-deploy-baremetal-os-odl_l2-nofeature-ha-{stream}'
305             predefined-parameters:
306               OPNFV_CLEAN=yes
307             git-revision: false
308             block: true
309             same-node: true
310         - trigger-builds:
311           - project: 'cperf-apex-intel-pod2-daily-{stream}'
312             predefined-parameters:
313               DEPLOY_SCENARIO=os-odl_l2-nofeature-ha
314             block: true
315             same-node: true
316
317 - job-template:
318     name: 'apex-build-{stream}'
319
320     # Job template for builds
321     #
322     # Required Variables:
323     #     stream:    branch with - in place of / (eg. stable)
324     #     branch:    branch (eg. stable)
325     node: '{daily-slave}'
326
327     disabled: false
328
329     concurrent: true
330
331     parameters:
332         - project-parameter:
333             project: '{project}'
334         - apex-parameter:
335             gs-pathname: '{gs-pathname}'
336         - gerrit-parameter:
337             branch: '{branch}'
338         - string:
339             name: GIT_BASE
340             default: https://gerrit.opnfv.org/gerrit/$PROJECT
341             description: "Used for overriding the GIT URL coming from parameters macro."
342
343     scm:
344         - git-scm:
345             credentials-id: '{ssh-credentials}'
346             refspec: ''
347             branch: '{branch}'
348
349     properties:
350         - build-blocker:
351             use-build-blocker: true
352             block-level: 'NODE'
353             blocking-jobs:
354                 - 'apex-deploy.*'
355         - throttle:
356             max-per-node: 1
357             max-total: 10
358             option: 'project'
359
360     builders:
361         - 'apex-build'
362         - trigger-builds:
363           - project: 'apex-deploy-virtual-os-nosdn-nofeature-noha-{stream}'
364             predefined-parameters: |
365               BUILD_DIRECTORY=apex-build-{stream}/.build
366               OPNFV_CLEAN=yes
367             git-revision: false
368             same-node: true
369             block: true
370         - 'apex-upload-artifact'
371
372 - job-template:
373     name: 'apex-deploy-virtual-{scenario}-{stream}'
374
375     # Job template for virtual deployment
376     #
377     # Required Variables:
378     #     stream:    branch with - in place of / (eg. stable)
379     #     branch:    branch (eg. stable)
380     node: '{slave}'
381
382     concurrent: true
383
384     disabled: false
385
386     scm:
387         - git-scm:
388             credentials-id: '{ssh-credentials}'
389             refspec: ''
390             branch: '{branch}'
391
392     parameters:
393         - project-parameter:
394             project: '{project}'
395         - apex-parameter:
396             gs-pathname: '{gs-pathname}'
397         - string:
398             name: DEPLOY_SCENARIO
399             default: '{scenario}'
400             description: "Scenario to deploy with."
401         - string:
402             name: OPNFV_CLEAN
403             default: 'no'
404             description: "Use yes in lower case to invoke clean. Indicates if the deploy environment should be cleaned before deployment"
405
406     properties:
407         - build-blocker:
408             use-build-blocker: true
409             block-level: 'NODE'
410             blocking-jobs:
411                 - 'apex-deploy.*'
412         - throttle:
413             max-per-node: 1
414             max-total: 10
415             option: 'project'
416
417     builders:
418         - 'apex-deploy'
419         - 'apex-workspace-cleanup'
420
421 - job-template:
422     name: 'apex-deploy-baremetal-{scenario}-{stream}'
423
424     # Job template for baremetal deployment
425     #
426     # Required Variables:
427     #     stream:    branch with - in place of / (eg. stable)
428     #     branch:    branch (eg. stable)
429     node: '{slave}'
430
431     disabled: false
432
433     scm:
434         - git-scm:
435             credentials-id: '{ssh-credentials}'
436             refspec: ''
437             branch: '{branch}'
438
439     parameters:
440         - project-parameter:
441             project: '{project}'
442         - apex-parameter:
443             gs-pathname: '{gs-pathname}'
444         - string:
445             name: DEPLOY_SCENARIO
446             default: '{scenario}'
447             description: "Scenario to deploy with."
448
449     properties:
450         - build-blocker:
451             use-build-blocker: true
452             block-level: 'NODE'
453             blocking-jobs:
454                 - 'apex-verify.*'
455                 - 'apex-deploy.*'
456                 - 'apex-build.*'
457
458
459     builders:
460         - 'apex-deploy'
461         - 'apex-workspace-cleanup'
462
463 # Daily
464 - job-template:
465     name: 'apex-daily-{stream}'
466
467     # Job template for daily build
468     #
469     # Required Variables:
470     #     stream:    branch with - in place of / (eg. stable)
471     #     branch:    branch (eg. stable)
472     node: '{daily-slave}'
473
474     disabled: false
475
476     scm:
477         - git-scm:
478             credentials-id: '{ssh-credentials}'
479             refspec: ''
480             branch: '{branch}'
481
482     parameters:
483         - project-parameter:
484             project: '{project}'
485         - apex-parameter:
486             gs-pathname: '{gs-pathname}'
487
488     properties:
489         - build-blocker:
490             use-build-blocker: true
491             block-level: 'NODE'
492             blocking-jobs:
493                 - 'apex-verify.*'
494                 - 'apex-deploy.*'
495                 - 'apex-build.*'
496                 - 'apex-runner.*'
497
498     triggers:
499         - 'apex-{stream}'
500
501     builders:
502         - trigger-builds:
503           - project: 'apex-build-{stream}'
504             git-revision: true
505             current-parameters: true
506             same-node: true
507             block: true
508         - trigger-builds:
509           - project: 'apex-deploy-baremetal-os-nosdn-nofeature-ha-{stream}'
510             predefined-parameters: |
511               BUILD_DIRECTORY=apex-build-{stream}/.build
512               OPNFV_CLEAN=yes
513             git-revision: true
514             same-node: true
515             block-thresholds:
516                 build-step-failure-threshold: 'never'
517             block: true
518         - trigger-builds:
519           - project: 'functest-apex-{daily-slave}-daily-{stream}'
520             predefined-parameters:
521               DEPLOY_SCENARIO=os-nosdn-nofeature-ha
522             block: true
523             same-node: true
524             block-thresholds:
525                 build-step-failure-threshold: 'never'
526                 failure-threshold: 'never'
527                 unstable-threshold: 'FAILURE'
528         - trigger-builds:
529           - project: 'yardstick-apex-{slave}-daily-{stream}'
530             predefined-parameters:
531               DEPLOY_SCENARIO=os-nosdn-nofeature-ha
532             block: true
533             same-node: true
534             block-thresholds:
535                 build-step-failure-threshold: 'never'
536                 failure-threshold: 'never'
537                 unstable-threshold: 'FAILURE'
538         - trigger-builds:
539           - project: 'apex-deploy-baremetal-os-odl_l3-nofeature-ha-{stream}'
540             predefined-parameters: |
541               BUILD_DIRECTORY=apex-build-{stream}/.build
542               OPNFV_CLEAN=yes
543             git-revision: true
544             same-node: true
545             block-thresholds:
546                 build-step-failure-threshold: 'never'
547             block: true
548         - trigger-builds:
549           - project: 'functest-apex-{daily-slave}-daily-{stream}'
550             predefined-parameters:
551               DEPLOY_SCENARIO=os-odl_l3-nofeature-ha
552             block: true
553             same-node: true
554             block-thresholds:
555                 build-step-failure-threshold: 'never'
556                 failure-threshold: 'never'
557                 unstable-threshold: 'FAILURE'
558         - trigger-builds:
559           - project: 'yardstick-apex-{slave}-daily-{stream}'
560             predefined-parameters:
561               DEPLOY_SCENARIO=os-odl_l3-nofeature-ha
562             block: true
563             same-node: true
564             block-thresholds:
565                 build-step-failure-threshold: 'never'
566                 failure-threshold: 'never'
567                 unstable-threshold: 'FAILURE'
568
569 - job-template:
570     name: 'apex-gs-clean-{stream}'
571
572     # Job template for clean
573     #
574     # Required Variables:
575     #     stream:    branch with - in place of / (eg. stable)
576     node: '{slave}'
577
578     disabled: false
579
580     parameters:
581         - project-parameter:
582             project: '{project}'
583         - apex-parameter:
584             gs-pathname: '{gs-pathname}'
585
586     builders:
587         - 'apex-gs-clean'
588
589     triggers:
590         - 'apex-gs-clean-{stream}'
591
592
593 ########################
594 # parameter macros
595 ########################
596 - parameter:
597     name: apex-parameter
598     parameters:
599         - string:
600             name: ARTIFACT_NAME
601             default: 'latest'
602             description: "RPM Artifact name that will be appended to GS_URL to deploy a specific artifact"
603         - string:
604             name: ARTIFACT_VERSION
605             default: 'daily'
606             description: "Artifact version type"
607         - string:
608             name: BUILD_DIRECTORY
609             default: $WORKSPACE/build
610             description: "Directory where the build artifact will be located upon the completion of the build."
611         - string:
612             name: CACHE_DIRECTORY
613             default: $HOME/opnfv/cache{gs-pathname}
614             description: "Directory where the cache to be used during the build is located."
615         - string:
616             name: GIT_BASE
617             default: https://gerrit.opnfv.org/gerrit/$PROJECT
618             description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
619         - string:
620             name: GS_PATHNAME
621             default: '{gs-pathname}'
622             description: "Version directory where opnfv artifacts are stored in gs repository"
623         - string:
624             name: GS_URL
625             default: artifacts.opnfv.org/$PROJECT{gs-pathname}
626             description: "URL to Google Storage."
627
628 ########################
629 # builder macros
630 ########################
631 - builder:
632     name: 'apex-unit-test'
633     builders:
634         - shell:
635             !include-raw: ./apex-unit-test.sh
636
637 - builder:
638     name: 'apex-build'
639     builders:
640         - shell:
641             !include-raw: ./apex-build.sh
642
643 - builder:
644     name: 'apex-workspace-cleanup'
645     builders:
646         - shell:
647             !include-raw: ./apex-workspace-cleanup.sh
648
649 - builder:
650     name: 'apex-upload-artifact'
651     builders:
652         - shell:
653             !include-raw: ./apex-upload-artifact.sh
654
655 - builder:
656     name: 'apex-gs-cleanup'
657     builders:
658         - shell:
659             !include-raw: ./apex-gs-cleanup.sh
660
661 - builder:
662     name: 'apex-deploy'
663     builders:
664         - shell:
665             !include-raw: ./apex-deploy.sh
666
667
668 #######################
669 # trigger macros
670 ########################
671 - trigger:
672     name: 'apex-master'
673     triggers:
674         - timed: '0 3 * * *'
675 - trigger:
676     name: 'apex-gs-clean-{stream}'
677     triggers:
678         - timed: '0 2 * * *'