Merge "Integrate functest with ARM Architecture with alpine images"
[releng.git] / jjb / apex / apex.yml.j2
1 - project:
2     name: 'apex'
3     project: 'apex'
4     jobs:
5         - 'apex-verify-{stream}'
6         - 'apex-verify-gate-{stream}'
7         - 'apex-verify-unit-tests-{stream}'
8         - 'apex-runner-cperf-{stream}'
9         - 'apex-deploy-{platform}-{stream}'
10         - 'apex-daily-{stream}'
11         - 'apex-csit-promote-daily-{stream}'
12         - 'apex-fdio-promote-daily-{stream}'
13         - 'apex-{scenario}-baremetal-{scenario_stream}'
14         - 'apex-testsuite-{scenario}-baremetal-{scenario_stream}'
15         - 'apex-upload-snapshot'
16         - 'apex-create-snapshot'
17         - 'apex-flex-daily-os-nosdn-nofeature-ha-{stream}'
18         - 'apex-dovetail-daily-os-nosdn-nofeature-ha-baremetal-danube'
19     # stream:    branch with - in place of / (eg. stable-arno)
20     # branch:    branch (eg. stable/arno)
21     stream:
22         - master: &master
23             branch: 'master'
24             gs-pathname: ''
25             build-slave: 'apex-build-master'
26             virtual-slave: 'apex-virtual-master'
27             baremetal-slave: 'apex-baremetal-master'
28             verify-scenario: 'os-odl-nofeature-ha'
29             scenario_stream: 'master'
30         - euphrates: &euphrates
31             branch: 'stable/euphrates'
32             gs-pathname: ''
33             build-slave: 'apex-build-master'
34             virtual-slave: 'apex-virtual-master'
35             baremetal-slave: 'apex-baremetal-master'
36             verify-scenario: 'os-odl-nofeature-ha'
37             scenario_stream: 'euphrates'
38         - danube: &danube
39             branch: 'stable/danube'
40             gs-pathname: '/danube'
41             build-slave: 'apex-build-danube'
42             virtual-slave: 'apex-virtual-danube'
43             baremetal-slave: 'apex-baremetal-danube'
44             verify-scenario: 'os-odl_l3-nofeature-ha'
45             scenario_stream: 'danube'
46             disabled: true
47
48     scenario:
49         {%- for stream in scenarios %}
50         {%- for scenario in scenarios[stream] %}
51         - '{{scenario}}':
52               <<: *{{stream}}
53         {%- endfor %}
54         {%- endfor %}
55
56     platform:
57          - 'baremetal'
58          - 'virtual'
59
60 # Unit Test
61 - job-template:
62     name: 'apex-verify-unit-tests-{stream}'
63
64     node: '{build-slave}'
65
66     concurrent: true
67
68     parameters:
69         - apex-parameter:
70             gs-pathname: '{gs-pathname}'
71         - project-parameter:
72             project: '{project}'
73             branch: '{branch}'
74
75     scm:
76         - git-scm-gerrit
77
78     triggers:
79         - gerrit:
80             server-name: 'gerrit.opnfv.org'
81             trigger-on:
82                 - patchset-created-event:
83                     exclude-drafts: 'false'
84                     exclude-trivial-rebase: 'false'
85                     exclude-no-code-change: 'true'
86                 - draft-published-event
87                 - comment-added-contains-event:
88                     comment-contains-value: 'recheck'
89                 - comment-added-contains-event:
90                     comment-contains-value: 'reverify'
91             projects:
92               - project-compare-type: 'ANT'
93                 project-pattern: 'apex'
94                 branches:
95                   - branch-compare-type: 'ANT'
96                     branch-pattern: '**/{branch}'
97                 disable-strict-forbidden-file-verification: 'false'
98                 file-paths:
99                   - compare-type: ANT
100                     pattern: 'apex/tests/**'
101                 forbidden-file-paths:
102                   - compare-type: ANT
103                     pattern: '*'
104                   - compare-type: ANT
105                     pattern: 'apex/*'
106                   - compare-type: ANT
107                     pattern: 'build/**'
108                   - compare-type: ANT
109                     pattern: 'lib/**'
110                   - compare-type: ANT
111                     pattern: 'config/**'
112                   - compare-type: ANT
113                     pattern: 'apex/build/**'
114                   - compare-type: ANT
115                     pattern: 'apex/common/**'
116                   - compare-type: ANT
117                     pattern: 'apex/inventory/**'
118                   - compare-type: ANT
119                     pattern: 'apex/network/**'
120                   - compare-type: ANT
121                     pattern: 'apex/overcloud/**'
122                   - compare-type: ANT
123                     pattern: 'apex/settings/**'
124                   - compare-type: ANT
125                     pattern: 'apex/undercloud/**'
126                   - compare-type: ANT
127                     pattern: 'apex/virtual/**'
128     properties:
129         - logrotate-default
130         - throttle:
131             max-per-node: 1
132             max-total: 10
133             option: 'project'
134
135     builders:
136         - shell:
137             !include-raw-escape: ./apex-unit-test.sh
138
139 # Verify
140 - job-template:
141     name: 'apex-verify-{stream}'
142
143     node: '{virtual-slave}'
144
145     concurrent: true
146
147     project-type: 'multijob'
148
149     parameters:
150         - apex-parameter:
151             gs-pathname: '{gs-pathname}/dev'
152         - project-parameter:
153             project: '{project}'
154             branch: '{branch}'
155         - string:
156             name: ARTIFACT_VERSION
157             default: dev
158             description: "Used for overriding the ARTIFACT_VERSION"
159     scm:
160         - git-scm-gerrit
161
162     triggers:
163         - gerrit:
164             server-name: 'gerrit.opnfv.org'
165             trigger-on:
166                 - patchset-created-event:
167                     exclude-drafts: 'false'
168                     exclude-trivial-rebase: 'false'
169                     exclude-no-code-change: 'true'
170                 - draft-published-event
171                 - comment-added-contains-event:
172                     comment-contains-value: 'recheck'
173                 - comment-added-contains-event:
174                     comment-contains-value: 'reverify'
175             projects:
176               - project-compare-type: 'ANT'
177                 project-pattern: 'apex'
178                 branches:
179                   - branch-compare-type: 'ANT'
180                     branch-pattern: '**/{branch}'
181                 disable-strict-forbidden-file-verification: 'true'
182                 file-paths:
183                   - compare-type: ANT
184                     pattern: '*'
185                   - compare-type: ANT
186                     pattern: 'apex/*'
187                   - compare-type: ANT
188                     pattern: 'build/**'
189                   - compare-type: ANT
190                     pattern: 'lib/**'
191                   - compare-type: ANT
192                     pattern: 'config/**'
193                   - compare-type: ANT
194                     pattern: 'apex/build/**'
195                   - compare-type: ANT
196                     pattern: 'apex/common/**'
197                   - compare-type: ANT
198                     pattern: 'apex/inventory/**'
199                   - compare-type: ANT
200                     pattern: 'apex/network/**'
201                   - compare-type: ANT
202                     pattern: 'apex/overcloud/**'
203                   - compare-type: ANT
204                     pattern: 'apex/settings/**'
205                   - compare-type: ANT
206                     pattern: 'apex/undercloud/**'
207                   - compare-type: ANT
208                     pattern: 'apex/virtual/**'
209                 forbidden-file-paths:
210                   - compare-type: ANT
211                     pattern: 'apex/tests/**'
212                   - compare-type: ANT
213                     pattern: 'docs/**'
214
215     properties:
216         - logrotate-default
217         - build-blocker:
218             use-build-blocker: true
219             block-level: 'NODE'
220             blocking-jobs:
221                 - 'apex-verify.*'
222         - throttle:
223             max-per-node: 1
224             max-total: 10
225             option: 'project'
226
227     builders:
228         - description-setter:
229             description: "Built on $NODE_NAME"
230         - multijob:
231             name: basic
232             condition: SUCCESSFUL
233             projects:
234                 - name: 'apex-verify-unit-tests-{stream}'
235                   current-parameters: false
236                   predefined-parameters: |
237                     GERRIT_BRANCH=$GERRIT_BRANCH
238                     GERRIT_REFSPEC=$GERRIT_REFSPEC
239                     GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
240                     GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
241                   node-parameters: false
242                   kill-phase-on: FAILURE
243                   abort-all-job: true
244                   git-revision: true
245         - multijob:
246             name: build
247             condition: SUCCESSFUL
248             projects:
249                 - name: 'apex-build-{stream}'
250                   current-parameters: false
251                   predefined-parameters: |
252                     ARTIFACT_VERSION=$ARTIFACT_VERSION
253                     GERRIT_BRANCH=$GERRIT_BRANCH
254                     GERRIT_REFSPEC=$GERRIT_REFSPEC
255                     GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
256                     GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
257                   node-parameters: false
258                   kill-phase-on: FAILURE
259                   abort-all-job: true
260                   git-revision: true
261         - multijob:
262             name: deploy-virtual
263             condition: SUCCESSFUL
264             projects:
265                 - name: 'apex-deploy-virtual-{stream}'
266                   current-parameters: false
267                   predefined-parameters: |
268                     ARTIFACT_VERSION=$ARTIFACT_VERSION
269                     DEPLOY_SCENARIO={verify-scenario}
270                     OPNFV_CLEAN=yes
271                     GERRIT_BRANCH=$GERRIT_BRANCH
272                     GERRIT_REFSPEC=$GERRIT_REFSPEC
273                     GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
274                     GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
275                   node-parameters: true
276                   kill-phase-on: FAILURE
277                   abort-all-job: true
278                   git-revision: true
279         - multijob:
280             name: functest-smoke
281             condition: SUCCESSFUL
282             projects:
283               - name: 'functest-apex-virtual-suite-{stream}'
284                 current-parameters: false
285                 predefined-parameters: |
286                   DEPLOY_SCENARIO={verify-scenario}
287                   FUNCTEST_SUITE_NAME=healthcheck
288                   GERRIT_BRANCH=$GERRIT_BRANCH
289                   GERRIT_REFSPEC=$GERRIT_REFSPEC
290                   GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
291                   GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
292                 node-parameters: true
293                 kill-phase-on: NEVER
294                 abort-all-job: true
295                 git-revision: false
296
297 # Verify Scenario Gate
298 - job-template:
299     name: 'apex-verify-gate-{stream}'
300
301     node: '{virtual-slave}'
302
303     concurrent: true
304
305     project-type: 'multijob'
306
307     parameters:
308         - apex-parameter:
309             gs-pathname: '{gs-pathname}/dev'
310         - project-parameter:
311             project: '{project}'
312             branch: '{branch}'
313         - string:
314             name: GIT_BASE
315             default: https://gerrit.opnfv.org/gerrit/$PROJECT
316             description: "Used for overriding the GIT URL coming from parameters macro."
317         - string:
318             name: ARTIFACT_VERSION
319             default: dev
320             description: "Used for overriding the ARTIFACT_VERSION"
321
322     scm:
323         - git-scm-gerrit
324
325     triggers:
326         - gerrit:
327             server-name: 'gerrit.opnfv.org'
328             trigger-on:
329                 - comment-added-contains-event:
330                     comment-contains-value: '^Patch Set [0-9]+: Code-Review\+2.*start-gate-scenario:.*'
331             projects:
332               - project-compare-type: 'ANT'
333                 project-pattern: 'apex'
334                 branches:
335                   - branch-compare-type: 'ANT'
336                     branch-pattern: '**/{branch}'
337                 file-paths:
338                   - compare-type: ANT
339                     pattern: 'ci/**'
340                   - compare-type: ANT
341                     pattern: 'build/**'
342                   - compare-type: ANT
343                     pattern: 'lib/**'
344                   - compare-type: ANT
345                     pattern: 'config/**'
346                   - compare-type: ANT
347                     pattern: 'apex/**'
348
349     properties:
350         - logrotate-default
351         - build-blocker:
352             use-build-blocker: true
353             block-level: 'NODE'
354             blocking-jobs:
355                 - 'apex-verify.*'
356         - throttle:
357             max-per-node: 1
358             max-total: 10
359             option: 'project'
360
361     builders:
362         - multijob:
363             name: deploy-virtual
364             condition: SUCCESSFUL
365             projects:
366                 - name: 'apex-deploy-virtual-{stream}'
367                   current-parameters: false
368                   predefined-parameters: |
369                     ARTIFACT_VERSION=$ARTIFACT_VERSION
370                     DEPLOY_SCENARIO=gate
371                     OPNFV_CLEAN=yes
372                     GERRIT_BRANCH=$GERRIT_BRANCH
373                     GERRIT_REFSPEC=$GERRIT_REFSPEC
374                     GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
375                     GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
376                     GERRIT_EVENT_COMMENT_TEXT=$GERRIT_EVENT_COMMENT_TEXT
377                   node-parameters: true
378                   kill-phase-on: FAILURE
379                   abort-all-job: true
380                   git-revision: true
381         - shell: |
382             echo DEPLOY_SCENARIO=$(echo $GERRIT_EVENT_COMMENT_TEXT | grep start-gate-scenario | grep -Eo 'os-.*') > detected_scenario
383         - inject:
384            properties-file: detected_scenario
385         - multijob:
386             name: functest-smoke
387             condition: SUCCESSFUL
388             projects:
389               - name: 'functest-apex-virtual-suite-{stream}'
390                 current-parameters: false
391                 predefined-parameters: |
392                   DEPLOY_SCENARIO=$DEPLOY_SCENARIO
393                   FUNCTEST_SUITE_NAME=healthcheck
394                   GERRIT_BRANCH=$GERRIT_BRANCH
395                   GERRIT_REFSPEC=$GERRIT_REFSPEC
396                   GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
397                   GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
398                 node-parameters: true
399                 kill-phase-on: NEVER
400                 abort-all-job: true
401                 git-revision: false
402
403 - job-template:
404     name: 'apex-runner-cperf-{stream}'
405
406     # runner cperf job
407     project-type: 'multijob'
408     node: 'intel-pod2'
409
410     disabled: false
411
412     parameters:
413         - apex-parameter:
414             gs-pathname: '{gs-pathname}'
415         - project-parameter:
416             project: '{project}'
417             branch: '{branch}'
418         - string:
419             name: GIT_BASE
420             default: https://gerrit.opnfv.org/gerrit/$PROJECT
421             description: "Used for overriding the GIT URL coming from parameters macro."
422
423     scm:
424         - git-scm
425
426     properties:
427         - logrotate-default
428         - build-blocker:
429             use-build-blocker: false
430             block-level: 'NODE'
431             blocking-jobs:
432                 - 'apex-deploy.*'
433         - throttle:
434             max-per-node: 1
435             max-total: 10
436             option: 'project'
437
438     builders:
439         - description-setter:
440             description: "Deployed on $NODE_NAME"
441         - multijob:
442             name: 'Baremetal Deploy'
443             condition: ALWAYS
444             projects:
445                 - name: 'apex-deploy-baremetal-{stream}'
446                   node-parameters: false
447                   current-parameters: true
448                   predefined-parameters: |
449                     GERRIT_BRANCH=$GERRIT_BRANCH
450                     GERRIT_REFSPEC=
451                     OPNFV_CLEAN=yes
452                     DEPLOY_SCENARIO={verify-scenario}
453                   kill-phase-on: FAILURE
454                   abort-all-job: true
455                   git-revision: false
456         - multijob:
457             name: CPERF
458             condition: SUCCESSFUL
459             projects:
460                 - name: 'cperf-apex-intel-pod2-daily-master'
461                   node-parameters: true
462                   current-parameters: false
463                   predefined-parameters:
464                     DEPLOY_SCENARIO={verify-scenario}
465                   kill-phase-on: NEVER
466                   abort-all-job: false
467                   git-revision: false
468
469 # Deploy job
470 - job-template:
471     name: 'apex-deploy-{platform}-{stream}'
472
473     node: 'apex-{platform}-{stream}'
474
475     concurrent: true
476
477     disabled: false
478     quiet-period: 30
479     scm:
480         - git-scm-gerrit
481
482     wrappers:
483         - timeout:
484             timeout: 140
485             fail: true
486
487     parameters:
488         - '{project}-{platform}-{stream}-defaults'
489         - project-parameter:
490             project: '{project}'
491             branch: '{branch}'
492         - apex-parameter:
493             gs-pathname: '{gs-pathname}'
494         - string:
495             name: DEPLOY_SCENARIO
496             default: '{verify-scenario}'
497             description: "Scenario to deploy with."
498         - string:
499             name: OPNFV_CLEAN
500             default: 'no'
501             description: "Use yes in lower case to invoke clean. Indicates if the deploy environment should be cleaned before deployment"
502
503     properties:
504         - logrotate-default
505         - build-blocker:
506             use-build-blocker: true
507             block-level: 'NODE'
508             blocking-jobs:
509                 - 'apex-deploy.*'
510                 - 'functest.*'
511                 - 'yardstick.*'
512                 - 'dovetail.*'
513                 - 'storperf.*'
514         - throttle:
515             max-per-node: 1
516             max-total: 10
517             option: 'project'
518
519     builders:
520         - description-setter:
521             description: "Deployed on $NODE_NAME - Scenario: $DEPLOY_SCENARIO"
522         - 'apex-download-artifact'
523         - 'apex-deploy'
524         - 'clean-workspace'
525
526
527 # Baremetal Deploy and Test
528 - job-template:
529     name: 'apex-{scenario}-baremetal-{scenario_stream}'
530
531     project-type: 'multijob'
532
533     disabled: false
534
535     scm:
536         - git-scm
537
538     parameters:
539         - '{project}-defaults'
540         - '{project}-baremetal-{scenario_stream}-defaults'
541         - project-parameter:
542             project: '{project}'
543             branch: '{branch}'
544         - apex-parameter:
545             gs-pathname: '{gs-pathname}'
546         - string:
547             name: DEPLOY_SCENARIO
548             default: '{scenario}'
549             description: "Scenario to deploy with."
550     properties:
551         - logrotate-default
552         - build-blocker:
553             use-build-blocker: true
554             block-level: 'NODE'
555             blocking-jobs:
556                 - 'apex-verify.*'
557                 - 'apex-runner.*'
558                 - 'apex-.*-promote.*'
559                 - 'apex-run.*'
560                 - 'apex-.+-baremetal-.+'
561         - throttle:
562             max-per-node: 1
563             max-total: 10
564             option: 'project'
565     builders:
566         - description-setter:
567             description: "Deployed on $NODE_NAME - Scenario: $DEPLOY_SCENARIO"
568         - multijob:
569             name: 'Baremetal Deploy'
570             condition: SUCCESSFUL
571             projects:
572                 - name: 'apex-deploy-baremetal-{scenario_stream}'
573                   node-parameters: true
574                   current-parameters: true
575                   predefined-parameters: |
576                     OPNFV_CLEAN=yes
577                     GERRIT_BRANCH=$GERRIT_BRANCH
578                     GERRIT_REFSPEC=
579                     DEPLOY_SCENARIO=$DEPLOY_SCENARIO
580                   kill-phase-on: FAILURE
581                   abort-all-job: true
582                   git-revision: false
583         - multijob:
584             name: 'OPNFV Test Suite'
585             projects:
586                 - name: 'apex-testsuite-{scenario}-baremetal-{scenario_stream}'
587                   node-parameters: true
588                   current-parameters: false
589                   predefined-parameters:
590                     DEPLOY_SCENARIO=$DEPLOY_SCENARIO
591                   kill-phase-on: NEVER
592                   abort-all-job: true
593                   git-revision: false
594
595     publishers:
596         - groovy-postbuild:
597             script:
598                 !include-raw-escape: ./update-build-result.groovy
599
600 # Baremetal test job
601 - job-template:
602     name: 'apex-testsuite-{scenario}-baremetal-{scenario_stream}'
603
604     project-type: 'multijob'
605
606     disabled: false
607
608     parameters:
609         - '{project}-defaults'
610         - '{project}-baremetal-{scenario_stream}-defaults'
611         - project-parameter:
612             project: '{project}'
613             branch: '{branch}'
614         - apex-parameter:
615             gs-pathname: '{gs-pathname}'
616         - string:
617             name: DEPLOY_SCENARIO
618             default: '{scenario}'
619             description: "Scenario to deploy with."
620     properties:
621         - logrotate-default
622         - build-blocker:
623             use-build-blocker: true
624             block-level: 'NODE'
625             blocking-jobs:
626                 - 'apex-verify.*'
627                 - 'apex-runner.*'
628                 - 'apex-.*-promote.*'
629                 - 'apex-run.*'
630                 - 'apex-testsuite-.+-baremetal-.+'
631         - throttle:
632             max-per-node: 1
633             max-total: 10
634             option: 'project'
635     builders:
636         - description-setter:
637             description: "Testing on $NODE_NAME - Scenario: $DEPLOY_SCENARIO"
638         - multijob:
639             name: Functest
640             condition: ALWAYS
641             projects:
642                 - name: 'functest-apex-baremetal-daily-{scenario_stream}'
643                   node-parameters: true
644                   current-parameters: false
645                   predefined-parameters:
646                     DEPLOY_SCENARIO=$DEPLOY_SCENARIO
647                   kill-phase-on: NEVER
648                   abort-all-job: false
649                   git-revision: false
650         - multijob:
651             name: Yardstick
652             condition: ALWAYS
653             projects:
654                 - name: 'yardstick-apex-baremetal-daily-{scenario_stream}'
655                   node-parameters: true
656                   current-parameters: false
657                   predefined-parameters:
658                     DEPLOY_SCENARIO=$DEPLOY_SCENARIO
659                   kill-phase-on: NEVER
660                   abort-all-job: false
661                   git-revision: false
662         - multijob:
663             name: Dovetail
664             condition: ALWAYS
665             projects:
666                 - name: 'dovetail-apex-baremetal-proposed_tests-{scenario_stream}'
667                   node-parameters: true
668                   current-parameters: false
669                   predefined-parameters:
670                     DEPLOY_SCENARIO=$DEPLOY_SCENARIO
671                   kill-phase-on: NEVER
672                   enable-condition: "def m = '$DEPLOY_SCENARIO' ==~ /os-(nosdn-nofeature|nosdn-kvm|odl_l3-fdio)-ha/"
673                   abort-all-job: false
674                   git-revision: false
675         - multijob:
676             name: StorPerf
677             condition: ALWAYS
678             projects:
679                 - name: 'storperf-apex-baremetal-daily-{scenario_stream}'
680                   node-parameters: true
681                   current-parameters: false
682                   predefined-parameters:
683                     DEPLOY_SCENARIO=$DEPLOY_SCENARIO
684                   enable-condition: "def m = '$DEPLOY_SCENARIO' ==~ /os-nosdn-nofeature-ha/"
685                   kill-phase-on: NEVER
686                   abort-all-job: false
687                   git-revision: false
688 # Build status is always success due conditional plugin prefetching
689 # build status before multijob phases execute
690 #        - conditional-step:
691 #            condition-kind: current-status
692 #            condition-worst: SUCCESS
693 #            condtion-best: SUCCESS
694 #            on-evaluation-failure: mark-unstable
695 #            steps:
696 #                - shell: 'echo "Tests Passed"'
697
698 - job-template:
699     name: 'apex-daily-{stream}'
700
701     # Job template for daily build
702     #
703     # Required Variables:
704     #     stream:    branch with - in place of / (eg. stable)
705     #     branch:    branch (eg. stable)
706     project-type: 'multijob'
707
708     node: '{baremetal-slave}'
709
710     disabled: false
711
712     scm:
713         - git-scm
714
715     parameters:
716         - '{project}-defaults'
717         - '{project}-baremetal-{stream}-defaults'
718         - project-parameter:
719             project: '{project}'
720             branch: '{branch}'
721         - apex-parameter:
722             gs-pathname: '{gs-pathname}'
723
724     properties:
725         - logrotate-default
726
727     triggers:
728         - 'apex-{stream}'
729
730     builders:
731         - multijob:
732             name: build
733             condition: SUCCESSFUL
734             projects:
735                 - name: 'apex-build-{stream}'
736                   current-parameters: false
737                   predefined-parameters: |
738                     GERRIT_BRANCH=$GERRIT_BRANCH
739                     GERRIT_REFSPEC=
740                     GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
741                     GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
742                   node-parameters: true
743                   kill-phase-on: FAILURE
744                   abort-all-job: true
745                   git-revision: true
746         - multijob:
747             name: 'Verify and upload ISO'
748             condition: SUCCESSFUL
749             projects:
750                 - name: 'apex-verify-iso-{stream}'
751                   current-parameters: false
752                   predefined-parameters: |
753                     BUILD_DIRECTORY=$WORKSPACE/../apex-build-{stream}/.build
754                     GERRIT_BRANCH=$GERRIT_BRANCH
755                     GERRIT_REFSPEC=
756                     GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
757                     GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
758                   node-parameters: true
759                   kill-phase-on: FAILURE
760                   abort-all-job: true
761                   git-revision: true
762         - apex-builder-{stream}
763
764 # snapshot create
765 - job-template:
766     name: 'apex-create-snapshot'
767
768     # Job template for clean
769     #
770     # Required Variables:
771     #     stream:    branch with - in place of / (eg. stable)
772
773     disabled: false
774
775     builders:
776         - shell:
777             !include-raw-escape: ./apex-snapshot-create.sh
778
779 # snapshot upload
780 - job-template:
781     name: 'apex-upload-snapshot'
782
783     # Job template for clean
784     #
785     # Required Variables:
786     #     stream:    branch with - in place of / (eg. stable)
787
788     disabled: false
789
790     builders:
791         - inject:
792            properties-content: ARTIFACT_TYPE=snapshot
793         - 'apex-upload-artifact'
794
795 # CSIT promote
796 - job-template:
797     name: 'apex-csit-promote-daily-{stream}'
798
799     # Job template for promoting CSIT Snapshots
800     #
801     # Required Variables:
802     #     stream:    branch with - in place of / (eg. stable)
803     #     branch:    branch (eg. stable)
804     node: '{virtual-slave}'
805     project-type: 'multijob'
806     disabled: false
807
808     scm:
809         - git-scm
810
811     parameters:
812         - project-parameter:
813             project: '{project}'
814             branch: '{branch}'
815         - apex-parameter:
816             gs-pathname: '{gs-pathname}'
817
818     properties:
819         - build-blocker:
820             use-build-blocker: true
821             block-level: 'NODE'
822             blocking-jobs:
823                 - 'apex-verify.*'
824                 - 'apex-deploy.*'
825                 - 'apex-runner.*'
826                 - 'apex-daily.*'
827
828     triggers:
829         - timed: '0 12 * * 0'
830
831     builders:
832         - multijob:
833             name: build
834             condition: SUCCESSFUL
835             projects:
836                 - name: 'apex-build-{stream}'
837                   current-parameters: false
838                   predefined-parameters: |
839                     GERRIT_BRANCH=$GERRIT_BRANCH
840                     GERRIT_REFSPEC=$GERRIT_REFSPEC
841                     GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
842                     GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
843                   node-parameters: false
844                   kill-phase-on: FAILURE
845                   abort-all-job: true
846                   git-revision: true
847         - multijob:
848             name: deploy-virtual
849             condition: SUCCESSFUL
850             projects:
851                 - name: 'apex-deploy-virtual-{stream}'
852                   current-parameters: false
853                   predefined-parameters: |
854                     DEPLOY_SCENARIO=os-odl_l3-csit-noha
855                     OPNFV_CLEAN=yes
856                     GERRIT_BRANCH=$GERRIT_BRANCH
857                     GERRIT_REFSPEC=$GERRIT_REFSPEC
858                     GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
859                     GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
860                     PROMOTE=True
861                   node-parameters: true
862                   kill-phase-on: FAILURE
863                   abort-all-job: true
864                   git-revision: false
865         - multijob:
866             name: functest-smoke
867             condition: SUCCESSFUL
868             projects:
869               - name: 'functest-apex-virtual-suite-{stream}'
870                 current-parameters: false
871                 predefined-parameters: |
872                   DEPLOY_SCENARIO=os-odl_l3-nofeature-noha
873                   FUNCTEST_SUITE_NAME=tempest_smoke_serial
874                   GERRIT_BRANCH=$GERRIT_BRANCH
875                   GERRIT_REFSPEC=$GERRIT_REFSPEC
876                   GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
877                   GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
878                 node-parameters: true
879                 kill-phase-on: FAILURE
880                 abort-all-job: true
881                 git-revision: false
882         - multijob:
883             name: create snapshot
884             condition: SUCCESSFUL
885             projects:
886               - name: 'apex-create-snapshot'
887                 current-parameters: false
888                 predefined-parameters: |
889                   SNAP_TYPE=csit
890                 node-parameters: true
891                 kill-phase-on: FAILURE
892                 abort-all-job: true
893                 git-revision: false
894         - multijob:
895             name: upload snapshot
896             condition: SUCCESSFUL
897             projects:
898               - name: 'apex-upload-snapshot'
899                 current-parameters: false
900                 predefined-parameters: |
901                   SNAP_TYPE=csit
902                 node-parameters: true
903                 kill-phase-on: FAILURE
904                 abort-all-job: true
905                 git-revision: false
906
907 # FDIO promote
908 - job-template:
909     name: 'apex-fdio-promote-daily-{stream}'
910
911     # Job template for promoting CSIT Snapshots
912     #
913     # Required Variables:
914     #     stream:    branch with - in place of / (eg. stable)
915     #     branch:    branch (eg. stable)
916     node: '{virtual-slave}'
917     project-type: 'multijob'
918     disabled: false
919
920     scm:
921         - git-scm
922
923     parameters:
924         - project-parameter:
925             project: '{project}'
926             branch: '{branch}'
927         - apex-parameter:
928             gs-pathname: '{gs-pathname}'
929
930     properties:
931         - build-blocker:
932             use-build-blocker: true
933             block-level: 'NODE'
934             blocking-jobs:
935                 - 'apex-verify.*'
936                 - 'apex-deploy.*'
937                 - 'apex-runner.*'
938                 - 'apex-daily.*'
939
940     builders:
941         - multijob:
942             name: build
943             condition: SUCCESSFUL
944             projects:
945                 - name: 'apex-build-{stream}'
946                   current-parameters: false
947                   predefined-parameters: |
948                     GERRIT_BRANCH=$GERRIT_BRANCH
949                     GERRIT_REFSPEC=$GERRIT_REFSPEC
950                     GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
951                     GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
952                   node-parameters: false
953                   kill-phase-on: FAILURE
954                   abort-all-job: true
955                   git-revision: true
956         - multijob:
957             name: deploy-virtual
958             condition: SUCCESSFUL
959             projects:
960                 - name: 'apex-deploy-virtual-{stream}'
961                   current-parameters: false
962                   predefined-parameters: |
963                     DEPLOY_SCENARIO=os-odl_netvirt-fdio-noha
964                     OPNFV_CLEAN=yes
965                     GERRIT_BRANCH=$GERRIT_BRANCH
966                     GERRIT_REFSPEC=$GERRIT_REFSPEC
967                     GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
968                     GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
969                     PROMOTE=True
970                   node-parameters: true
971                   kill-phase-on: FAILURE
972                   abort-all-job: true
973                   git-revision: false
974         - multijob:
975             name: create snapshot
976             condition: SUCCESSFUL
977             projects:
978               - name: 'apex-create-snapshot'
979                 current-parameters: false
980                 predefined-parameters: |
981                   SNAP_TYPE=fdio
982                 node-parameters: true
983                 kill-phase-on: FAILURE
984                 abort-all-job: true
985                 git-revision: false
986         - multijob:
987             name: upload snapshot
988             condition: SUCCESSFUL
989             projects:
990               - name: 'apex-upload-snapshot'
991                 current-parameters: false
992                 predefined-parameters: |
993                   SNAP_TYPE=fdio
994                 node-parameters: true
995                 kill-phase-on: FAILURE
996                 abort-all-job: true
997                 git-revision: false
998
999 # Flex job
1000 - job-template:
1001     name: 'apex-flex-daily-os-nosdn-nofeature-ha-{stream}'
1002
1003     project-type: 'multijob'
1004
1005     disabled: false
1006
1007     node: 'flex-pod2'
1008
1009     scm:
1010         - git-scm
1011     triggers:
1012         - 'apex-{stream}'
1013     parameters:
1014         - '{project}-defaults'
1015         - project-parameter:
1016             project: '{project}'
1017             branch: '{branch}'
1018         - apex-parameter:
1019             gs-pathname: '{gs-pathname}'
1020         - string:
1021             name: DEPLOY_SCENARIO
1022             default: 'os-nosdn-nofeature-ha'
1023             description: "Scenario to deploy with."
1024         - string:
1025             name: GIT_BASE
1026             default: https://gerrit.opnfv.org/gerrit/$PROJECT
1027             description: 'Git URL to use on this Jenkins Slave'
1028         - string:
1029             name: SSH_KEY
1030             default: /root/.ssh/id_rsa
1031             description: 'SSH key to use for Apex'
1032     properties:
1033         - logrotate-default
1034         - build-blocker:
1035             use-build-blocker: true
1036             block-level: 'NODE'
1037             blocking-jobs:
1038                 - 'apex-verify.*'
1039                 - 'apex-runner.*'
1040                 - 'apex-.*-promote.*'
1041                 - 'apex-run.*'
1042                 - 'apex-.+-baremetal-.+'
1043         - throttle:
1044             max-per-node: 1
1045             max-total: 10
1046             option: 'project'
1047     builders:
1048         - description-setter:
1049             description: "Deployed on $NODE_NAME - Scenario: $DEPLOY_SCENARIO"
1050         - multijob:
1051             name: 'Baremetal Deploy'
1052             condition: SUCCESSFUL
1053             projects:
1054                 - name: 'apex-deploy-baremetal-{stream}'
1055                   node-parameters: true
1056                   current-parameters: true
1057                   predefined-parameters: |
1058                     OPNFV_CLEAN=yes
1059                     GERRIT_BRANCH=$GERRIT_BRANCH
1060                     GERRIT_REFSPEC=
1061                     DEPLOY_SCENARIO=$DEPLOY_SCENARIO
1062                   kill-phase-on: FAILURE
1063                   abort-all-job: true
1064                   git-revision: false
1065         - multijob:
1066             name: Yardstick
1067             condition: ALWAYS
1068             projects:
1069                 - name: 'yardstick-apex-baremetal-daily-{stream}'
1070                   node-parameters: true
1071                   current-parameters: false
1072                   predefined-parameters:
1073                     DEPLOY_SCENARIO=$DEPLOY_SCENARIO
1074                   kill-phase-on: NEVER
1075                   abort-all-job: false
1076                   git-revision: false
1077
1078 # Dovetail Danube test job
1079 - job-template:
1080     name: 'apex-dovetail-daily-os-nosdn-nofeature-ha-baremetal-danube'
1081
1082     project-type: 'multijob'
1083
1084     node: 'huawei-pod4'
1085
1086     disabled: false
1087
1088     parameters:
1089         - '{project}-defaults'
1090         - project-parameter:
1091             project: '{project}'
1092             branch: 'stable/danube'
1093         - apex-parameter:
1094             gs-pathname: '/danube'
1095         - string:
1096             name: DEPLOY_SCENARIO
1097             default: 'os-nosdn-nofeature-ha'
1098             description: "Scenario to deploy with."
1099
1100     properties:
1101         - logrotate-default
1102         - build-blocker:
1103             use-build-blocker: true
1104             block-level: 'NODE'
1105             blocking-jobs:
1106                 - 'apex-verify.*'
1107                 - 'apex-runner.*'
1108                 - 'apex-.*-promote.*'
1109                 - 'apex-run.*'
1110
1111     triggers:
1112         - timed: '0 12 * * *'
1113
1114     builders:
1115         - description-setter:
1116             description: "Testing on $NODE_NAME - Scenario: $DEPLOY_SCENARIO"
1117         - multijob:
1118             name: 'Baremetal Deploy'
1119             condition: SUCCESSFUL
1120             projects:
1121                 - name: 'apex-deploy-baremetal-danube'
1122                   node-parameters: true
1123                   current-parameters: true
1124                   predefined-parameters: |
1125                     OPNFV_CLEAN=yes
1126                     GERRIT_BRANCH=$GERRIT_BRANCH
1127                     GERRIT_REFSPEC=
1128                     DEPLOY_SCENARIO=$DEPLOY_SCENARIO
1129                   kill-phase-on: FAILURE
1130                   abort-all-job: true
1131                   git-revision: false
1132         - multijob:
1133             name: Dovetail
1134             condition: ALWAYS
1135             projects:
1136                 - name: 'dovetail-apex-baremetal-proposed_tests-danube'
1137                   node-parameters: true
1138                   current-parameters: false
1139                   predefined-parameters:
1140                     DEPLOY_SCENARIO=$DEPLOY_SCENARIO
1141                   kill-phase-on: NEVER
1142                   abort-all-job: false
1143                   git-revision: false
1144
1145 ########################
1146 # parameter macros
1147 ########################
1148 - parameter:
1149     name: apex-parameter
1150     parameters:
1151         - string:
1152             name: ARTIFACT_NAME
1153             default: 'latest'
1154             description: "RPM Artifact name that will be appended to GS_URL to deploy a specific artifact"
1155         - string:
1156             name: ARTIFACT_VERSION
1157             default: 'daily'
1158             description: "Artifact version type"
1159         - string:
1160             name: BUILD_DIRECTORY
1161             default: $WORKSPACE/.build
1162             description: "Directory where the build artifact will be located upon the completion of the build."
1163         - string:
1164             name: CACHE_DIRECTORY
1165             default: $HOME/opnfv/apex-cache{gs-pathname}
1166             description: "Directory where the cache to be used during the build is located."
1167         - string:
1168             name: GIT_BASE
1169             default: https://gerrit.opnfv.org/gerrit/$PROJECT
1170             description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
1171         - string:
1172             name: GS_PATHNAME
1173             default: '{gs-pathname}'
1174             description: "Version directory where opnfv artifacts are stored in gs repository"
1175         - string:
1176             name: GS_URL
1177             default: $GS_BASE{gs-pathname}
1178             description: "URL to Google Storage."
1179         - string:
1180             name: PROMOTE
1181             default: 'False'
1182             description: "Flag to know if we should promote/upload snapshot artifacts."
1183
1184 ########################
1185 # builder macros
1186 ########################
1187 {% for stream in scenarios %}
1188 # {{ stream }} Builder
1189 - builder:
1190       name: apex-builder-{{ stream }}
1191       builders:
1192         - multijob:
1193             name: Baremetal Deploy and Test Phase
1194             condition: SUCCESSFUL
1195             projects:
1196 {% for scenario in scenarios[stream] %}
1197                 - name: 'apex-{{ scenario }}-baremetal-{{ stream }}'
1198                   node-parameters: false
1199                   current-parameters: false
1200                   predefined-parameters: |
1201                     OPNFV_CLEAN=yes
1202                   kill-phase-on: NEVER
1203                   abort-all-job: true
1204                   git-revision: false
1205 {% endfor %}
1206 {% endfor %}
1207
1208 - builder:
1209     name: 'apex-unit-test'
1210     builders:
1211         - shell:
1212             !include-raw: ./apex-unit-test.sh
1213
1214 - builder:
1215     name: 'apex-upload-artifact'
1216     builders:
1217         - shell:
1218             !include-raw: ./apex-upload-artifact.sh
1219
1220 - builder:
1221     name: 'apex-download-artifact'
1222     builders:
1223         - shell:
1224             !include-raw: ./apex-download-artifact.sh
1225
1226 - builder:
1227     name: 'apex-deploy'
1228     builders:
1229         - shell:
1230             !include-raw: ./apex-deploy.sh
1231
1232 #######################
1233 # trigger macros
1234 ########################
1235 - trigger:
1236     name: 'apex-master'
1237     triggers:
1238         - timed: '0 3 1 1 7'
1239 - trigger:
1240     name: 'apex-euphrates'
1241     triggers:
1242         - timed: '0 12 * * *'
1243 - trigger:
1244     name: 'apex-danube'
1245     triggers:
1246         - timed: '0 3 1 1 7'
1247