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