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