Merge "barometer: update nightly build"
[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-master'
11         - 'apex-daily-danube'
12         - 'apex-csit-promote-daily-{stream}'
13         - 'apex-fdio-promote-daily-{stream}'
14         - 'apex-{scenario}-baremetal-{scenario_stream}'
15         - 'apex-testsuite-{scenario}-baremetal-{scenario_stream}'
16         - 'apex-upload-snapshot'
17         - 'apex-create-snapshot'
18         - 'apex-flex-daily-os-nosdn-nofeature-ha-{stream}'
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 {% for stream in scenarios %}
692 # {{ stream }} Daily
693 - job-template:
694     name: 'apex-daily-{{ stream }}'
695
696     # Job template for daily build
697     #
698     # Required Variables:
699     #     stream:    branch with - in place of / (eg. stable)
700     #     branch:    branch (eg. stable)
701     project-type: 'multijob'
702
703     node: '{{ build_slave[stream] }}'
704
705     disabled: false
706
707     scm:
708         - git-scm
709
710     parameters:
711         - '{project}-defaults'
712         - '{project}-baremetal-{{ stream }}-defaults'
713         - project-parameter:
714             project: '{project}'
715             branch: '{{ branch[stream] }}'
716         - apex-parameter:
717             gs-pathname: '{{ gspathname[stream] }}'
718
719     properties:
720         - logrotate-default
721
722     triggers:
723         - 'apex-{{ stream }}'
724
725     builders:
726         - multijob:
727             name: build
728             condition: SUCCESSFUL
729             projects:
730                 - name: 'apex-build-{{ stream }}'
731                   current-parameters: false
732                   predefined-parameters: |
733                     GERRIT_BRANCH=$GERRIT_BRANCH
734                     GERRIT_REFSPEC=
735                     GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
736                     GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
737                   node-parameters: true
738                   kill-phase-on: FAILURE
739                   abort-all-job: true
740                   git-revision: true
741         - multijob:
742             name: 'Verify and upload ISO'
743             condition: SUCCESSFUL
744             projects:
745                 - name: 'apex-verify-iso-{{ stream }}'
746                   current-parameters: false
747                   predefined-parameters: |
748                     BUILD_DIRECTORY=$WORKSPACE/../apex-build-{{ stream }}/.build
749                     GERRIT_BRANCH=$GERRIT_BRANCH
750                     GERRIT_REFSPEC=
751                     GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
752                     GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
753                   node-parameters: true
754                   kill-phase-on: FAILURE
755                   abort-all-job: true
756                   git-revision: true
757         - multijob:
758             name: Baremetal Deploy and Test Phase
759             condition: SUCCESSFUL
760             projects:
761 {% for scenario in scenarios[stream] %}
762                 - name: 'apex-{{ scenario }}-baremetal-{{ stream }}'
763                   node-parameters: false
764                   current-parameters: false
765                   predefined-parameters: |
766                     OPNFV_CLEAN=yes
767                   kill-phase-on: NEVER
768                   abort-all-job: true
769                   git-revision: false
770 {% endfor %}
771 {% endfor %}
772
773 # snapshot create
774 - job-template:
775     name: 'apex-create-snapshot'
776
777     # Job template for clean
778     #
779     # Required Variables:
780     #     stream:    branch with - in place of / (eg. stable)
781
782     disabled: false
783
784     builders:
785         - shell:
786             !include-raw-escape: ./apex-snapshot-create.sh
787
788 # snapshot upload
789 - job-template:
790     name: 'apex-upload-snapshot'
791
792     # Job template for clean
793     #
794     # Required Variables:
795     #     stream:    branch with - in place of / (eg. stable)
796
797     disabled: false
798
799     builders:
800         - inject:
801            properties-content: ARTIFACT_TYPE=snapshot
802         - 'apex-upload-artifact'
803
804 # CSIT promote
805 - job-template:
806     name: 'apex-csit-promote-daily-{stream}'
807
808     # Job template for promoting CSIT Snapshots
809     #
810     # Required Variables:
811     #     stream:    branch with - in place of / (eg. stable)
812     #     branch:    branch (eg. stable)
813     node: '{virtual-slave}'
814     project-type: 'multijob'
815     disabled: false
816
817     scm:
818         - git-scm
819
820     parameters:
821         - project-parameter:
822             project: '{project}'
823             branch: '{branch}'
824         - apex-parameter:
825             gs-pathname: '{gs-pathname}'
826
827     properties:
828         - build-blocker:
829             use-build-blocker: true
830             block-level: 'NODE'
831             blocking-jobs:
832                 - 'apex-verify.*'
833                 - 'apex-deploy.*'
834                 - 'apex-runner.*'
835                 - 'apex-daily.*'
836
837     triggers:
838         - timed: '0 12 * * 0'
839
840     builders:
841         - multijob:
842             name: build
843             condition: SUCCESSFUL
844             projects:
845                 - name: 'apex-build-{stream}'
846                   current-parameters: false
847                   predefined-parameters: |
848                     GERRIT_BRANCH=$GERRIT_BRANCH
849                     GERRIT_REFSPEC=$GERRIT_REFSPEC
850                     GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
851                     GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
852                   node-parameters: false
853                   kill-phase-on: FAILURE
854                   abort-all-job: true
855                   git-revision: true
856         - multijob:
857             name: deploy-virtual
858             condition: SUCCESSFUL
859             projects:
860                 - name: 'apex-deploy-virtual-{stream}'
861                   current-parameters: false
862                   predefined-parameters: |
863                     DEPLOY_SCENARIO=os-odl_l3-csit-noha
864                     OPNFV_CLEAN=yes
865                     GERRIT_BRANCH=$GERRIT_BRANCH
866                     GERRIT_REFSPEC=$GERRIT_REFSPEC
867                     GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
868                     GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
869                     PROMOTE=True
870                   node-parameters: true
871                   kill-phase-on: FAILURE
872                   abort-all-job: true
873                   git-revision: false
874         - multijob:
875             name: functest-smoke
876             condition: SUCCESSFUL
877             projects:
878               - name: 'functest-apex-virtual-suite-{stream}'
879                 current-parameters: false
880                 predefined-parameters: |
881                   DEPLOY_SCENARIO=os-odl_l3-nofeature-noha
882                   FUNCTEST_SUITE_NAME=tempest_smoke_serial
883                   GERRIT_BRANCH=$GERRIT_BRANCH
884                   GERRIT_REFSPEC=$GERRIT_REFSPEC
885                   GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
886                   GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
887                 node-parameters: true
888                 kill-phase-on: FAILURE
889                 abort-all-job: true
890                 git-revision: false
891         - multijob:
892             name: create snapshot
893             condition: SUCCESSFUL
894             projects:
895               - name: 'apex-create-snapshot'
896                 current-parameters: false
897                 predefined-parameters: |
898                   SNAP_TYPE=csit
899                 node-parameters: true
900                 kill-phase-on: FAILURE
901                 abort-all-job: true
902                 git-revision: false
903         - multijob:
904             name: upload snapshot
905             condition: SUCCESSFUL
906             projects:
907               - name: 'apex-upload-snapshot'
908                 current-parameters: false
909                 predefined-parameters: |
910                   SNAP_TYPE=csit
911                 node-parameters: true
912                 kill-phase-on: FAILURE
913                 abort-all-job: true
914                 git-revision: false
915
916 # FDIO promote
917 - job-template:
918     name: 'apex-fdio-promote-daily-{stream}'
919
920     # Job template for promoting CSIT Snapshots
921     #
922     # Required Variables:
923     #     stream:    branch with - in place of / (eg. stable)
924     #     branch:    branch (eg. stable)
925     node: '{virtual-slave}'
926     project-type: 'multijob'
927     disabled: false
928
929     scm:
930         - git-scm
931
932     parameters:
933         - project-parameter:
934             project: '{project}'
935             branch: '{branch}'
936         - apex-parameter:
937             gs-pathname: '{gs-pathname}'
938
939     properties:
940         - build-blocker:
941             use-build-blocker: true
942             block-level: 'NODE'
943             blocking-jobs:
944                 - 'apex-verify.*'
945                 - 'apex-deploy.*'
946                 - 'apex-runner.*'
947                 - 'apex-daily.*'
948
949     builders:
950         - multijob:
951             name: build
952             condition: SUCCESSFUL
953             projects:
954                 - name: 'apex-build-{stream}'
955                   current-parameters: false
956                   predefined-parameters: |
957                     GERRIT_BRANCH=$GERRIT_BRANCH
958                     GERRIT_REFSPEC=$GERRIT_REFSPEC
959                     GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
960                     GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
961                   node-parameters: false
962                   kill-phase-on: FAILURE
963                   abort-all-job: true
964                   git-revision: true
965         - multijob:
966             name: deploy-virtual
967             condition: SUCCESSFUL
968             projects:
969                 - name: 'apex-deploy-virtual-{stream}'
970                   current-parameters: false
971                   predefined-parameters: |
972                     DEPLOY_SCENARIO=os-odl_netvirt-fdio-noha
973                     OPNFV_CLEAN=yes
974                     GERRIT_BRANCH=$GERRIT_BRANCH
975                     GERRIT_REFSPEC=$GERRIT_REFSPEC
976                     GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
977                     GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
978                     PROMOTE=True
979                   node-parameters: true
980                   kill-phase-on: FAILURE
981                   abort-all-job: true
982                   git-revision: false
983         - multijob:
984             name: create snapshot
985             condition: SUCCESSFUL
986             projects:
987               - name: 'apex-create-snapshot'
988                 current-parameters: false
989                 predefined-parameters: |
990                   SNAP_TYPE=fdio
991                 node-parameters: true
992                 kill-phase-on: FAILURE
993                 abort-all-job: true
994                 git-revision: false
995         - multijob:
996             name: upload snapshot
997             condition: SUCCESSFUL
998             projects:
999               - name: 'apex-upload-snapshot'
1000                 current-parameters: false
1001                 predefined-parameters: |
1002                   SNAP_TYPE=fdio
1003                 node-parameters: true
1004                 kill-phase-on: FAILURE
1005                 abort-all-job: true
1006                 git-revision: false
1007
1008 # Flex job
1009 - job-template:
1010     name: 'apex-flex-daily-os-nosdn-nofeature-ha-{stream}'
1011
1012     project-type: 'multijob'
1013
1014     disabled: false
1015
1016     node: 'flex-pod2'
1017
1018     scm:
1019         - git-scm
1020     triggers:
1021         - 'apex-{stream}'
1022     parameters:
1023         - '{project}-defaults'
1024         - project-parameter:
1025             project: '{project}'
1026             branch: '{branch}'
1027         - apex-parameter:
1028             gs-pathname: '{gs-pathname}'
1029         - string:
1030             name: DEPLOY_SCENARIO
1031             default: 'os-nosdn-nofeature-ha'
1032             description: "Scenario to deploy with."
1033         - string:
1034             name: GIT_BASE
1035             default: https://gerrit.opnfv.org/gerrit/$PROJECT
1036             description: 'Git URL to use on this Jenkins Slave'
1037         - string:
1038             name: SSH_KEY
1039             default: /root/.ssh/id_rsa
1040             description: 'SSH key to use for Apex'
1041     properties:
1042         - logrotate-default
1043         - build-blocker:
1044             use-build-blocker: true
1045             block-level: 'NODE'
1046             blocking-jobs:
1047                 - 'apex-verify.*'
1048                 - 'apex-runner.*'
1049                 - 'apex-.*-promote.*'
1050                 - 'apex-run.*'
1051                 - 'apex-.+-baremetal-.+'
1052         - throttle:
1053             max-per-node: 1
1054             max-total: 10
1055             option: 'project'
1056     builders:
1057         - description-setter:
1058             description: "Deployed on $NODE_NAME - Scenario: $DEPLOY_SCENARIO"
1059         - multijob:
1060             name: 'Baremetal Deploy'
1061             condition: SUCCESSFUL
1062             projects:
1063                 - name: 'apex-deploy-baremetal-{stream}'
1064                   node-parameters: true
1065                   current-parameters: true
1066                   predefined-parameters: |
1067                     OPNFV_CLEAN=yes
1068                     GERRIT_BRANCH=$GERRIT_BRANCH
1069                     GERRIT_REFSPEC=
1070                     DEPLOY_SCENARIO=$DEPLOY_SCENARIO
1071                   kill-phase-on: FAILURE
1072                   abort-all-job: true
1073                   git-revision: false
1074         - multijob:
1075             name: Yardstick
1076             condition: ALWAYS
1077             projects:
1078                 - name: 'yardstick-apex-baremetal-daily-{stream}'
1079                   node-parameters: true
1080                   current-parameters: false
1081                   predefined-parameters:
1082                     DEPLOY_SCENARIO=$DEPLOY_SCENARIO
1083                   kill-phase-on: NEVER
1084                   abort-all-job: false
1085                   git-revision: false
1086
1087 ########################
1088 # parameter macros
1089 ########################
1090 - parameter:
1091     name: apex-parameter
1092     parameters:
1093         - string:
1094             name: ARTIFACT_NAME
1095             default: 'latest'
1096             description: "RPM Artifact name that will be appended to GS_URL to deploy a specific artifact"
1097         - string:
1098             name: ARTIFACT_VERSION
1099             default: 'daily'
1100             description: "Artifact version type"
1101         - string:
1102             name: BUILD_DIRECTORY
1103             default: $WORKSPACE/.build
1104             description: "Directory where the build artifact will be located upon the completion of the build."
1105         - string:
1106             name: CACHE_DIRECTORY
1107             default: $HOME/opnfv/apex-cache{gs-pathname}
1108             description: "Directory where the cache to be used during the build is located."
1109         - string:
1110             name: GIT_BASE
1111             default: https://gerrit.opnfv.org/gerrit/$PROJECT
1112             description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
1113         - string:
1114             name: GS_PATHNAME
1115             default: '{gs-pathname}'
1116             description: "Version directory where opnfv artifacts are stored in gs repository"
1117         - string:
1118             name: GS_URL
1119             default: $GS_BASE{gs-pathname}
1120             description: "URL to Google Storage."
1121         - string:
1122             name: PROMOTE
1123             default: 'False'
1124             description: "Flag to know if we should promote/upload snapshot artifacts."
1125
1126 ########################
1127 # builder macros
1128 ########################
1129 - builder:
1130     name: 'apex-unit-test'
1131     builders:
1132         - shell:
1133             !include-raw: ./apex-unit-test.sh
1134
1135 - builder:
1136     name: 'apex-upload-artifact'
1137     builders:
1138         - shell:
1139             !include-raw: ./apex-upload-artifact.sh
1140
1141 - builder:
1142     name: 'apex-download-artifact'
1143     builders:
1144         - shell:
1145             !include-raw: ./apex-download-artifact.sh
1146
1147 - builder:
1148     name: 'apex-deploy'
1149     builders:
1150         - shell:
1151             !include-raw: ./apex-deploy.sh
1152
1153 #######################
1154 # trigger macros
1155 ########################
1156 - trigger:
1157     name: 'apex-master'
1158     triggers:
1159         - timed: '0 12 * * *'
1160 - trigger:
1161     name: 'apex-danube'
1162     triggers:
1163         - timed: '0 3 1 1 7'
1164