Apex: Fixes opnfv-clean to only run on stable/b
[releng.git] / jjb / apex / apex.yml
1 - project:
2     name: apex
3     jobs:
4         - 'apex-verify-{stream1}'
5         - 'apex-verify-{stream2}'
6         - 'apex-runner-{platform}-{scenario}-{stream}'
7         - 'apex-build-{stream}'
8         - 'apex-deploy-virtual-{scenario}-{stream}'
9         - 'apex-deploy-baremetal-{scenario}-{stream}'
10         - 'apex-daily-{stream1}'
11         - 'apex-daily-{stream2}'
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             block-stream: 'brahmaputra'
20             slave: 'intel-pod7'
21         - brahmaputra:
22             branch: 'stable/brahmaputra'
23             gs-pathname: '/brahmaputra'
24             block-stream: 'master'
25             slave: 'opnfv-jump-1'
26             disabled: false
27
28     stream1:
29         - master:
30             branch: 'master'
31             gs-pathname: ''
32             block-stream: 'brahmaputra'
33             slave: 'intel-pod7'
34
35     stream2:
36         - brahmaputra:
37             branch: 'stable/brahmaputra'
38             gs-pathname: '/brahmaputra'
39             block-stream: 'master'
40             slave: 'opnfv-jump-1'
41             disabled: false
42
43     project: 'apex'
44
45     scenario:
46          - 'os-nosdn-nofeature-ha'
47          - 'os-odl_l2-nofeature-ha'
48          - 'os-odl_l2-sfc-noha'
49          - 'os-odl_l3-nofeature-ha'
50          - 'os-onos-nofeature-ha'
51          - 'os-opencontrail-nofeature-ha'
52
53     platform:
54          - 'baremetal'
55          - 'virtual'
56
57 # Brahmaputra Verify
58 - job-template:
59     name: 'apex-verify-{stream2}'
60
61     node: '{slave}'
62
63     parameters:
64         - apex-parameter:
65             gs-pathname: '{gs-pathname}'
66         - project-parameter:
67             project: '{project}'
68         - gerrit-parameter:
69             branch: '{branch}'
70         - string:
71             name: GIT_BASE
72             default: https://gerrit.opnfv.org/gerrit/$PROJECT
73             description: "Used for overriding the GIT URL coming from parameters macro."
74
75     scm:
76         - gerrit-trigger-scm:
77             credentials-id: '{ssh-credentials}'
78             refspec: '$GERRIT_REFSPEC'
79             choosing-strategy: 'gerrit'
80
81     triggers:
82         - gerrit:
83             trigger-on:
84                 - patchset-created-event:
85                     exclude-drafts: 'false'
86                     exclude-trivial-rebase: 'false'
87                     exclude-no-code-change: 'true'
88                 - draft-published-event
89                 - comment-added-contains-event:
90                     comment-contains-value: 'recheck'
91                 - comment-added-contains-event:
92                     comment-contains-value: 'reverify'
93             projects:
94               - project-compare-type: 'ANT'
95                 project-pattern: 'apex'
96                 branches:
97                   - branch-compare-type: 'ANT'
98                     branch-pattern: '**/{branch}'
99                 file-paths:
100                   - compare-type: ANT
101                     pattern: 'ci/**'
102                   - compare-type: ANT
103                     pattern: 'build/**'
104                   - compare-type: ANT
105                     pattern: 'lib/**'
106                   - compare-type: ANT
107                     pattern: 'config/**'
108
109     properties:
110         - build-blocker:
111             use-build-blocker: true
112             blocking-jobs:
113                 - 'apex-daily.*{stream2}'
114                 - 'apex-deploy.*{stream2}'
115                 - 'apex-build.*{stream2}'
116                 - 'apex-runner.*{stream2}'
117                 - 'apex-verify-{stream2}'
118
119     builders:
120         - 'apex-build'
121         - trigger-builds:
122           - project: 'apex-deploy-virtual-os-odl_l2-nofeature-ha-{stream2}'
123             predefined-parameters: |
124               BUILD_DIRECTORY=apex-verify-{stream2}/build_output
125               OPNFV_CLEAN=yes
126             git-revision: false
127             block: true
128         - trigger-builds:
129           - project: 'apex-deploy-virtual-os-onos-nofeature-ha-{stream2}'
130             predefined-parameters: |
131               BUILD_DIRECTORY=apex-verify-{stream2}/build_output
132               OPNFV_CLEAN=yes
133             git-revision: false
134             block: true
135         - trigger-builds:
136           - project: 'apex-deploy-virtual-os-odl_l3-nofeature-ha-{stream2}'
137             predefined-parameters: |
138               BUILD_DIRECTORY=apex-verify-{stream2}/build_output
139               OPNFV_CLEAN=yes
140             git-revision: false
141             block: true
142         - trigger-builds:
143           - project: 'apex-deploy-virtual-os-odl_l2-sfc-noha-{stream2}'
144             predefined-parameters: |
145               BUILD_DIRECTORY=apex-verify-{stream2}/build_output
146               OPNFV_CLEAN=yes
147             git-revision: false
148             block: true
149         - 'apex-workspace-cleanup'
150
151 # Master Verify
152 - job-template:
153     name: 'apex-verify-{stream1}'
154
155     node: '{slave}'
156
157     parameters:
158         - apex-parameter:
159             gs-pathname: '{gs-pathname}'
160         - project-parameter:
161             project: '{project}'
162         - gerrit-parameter:
163             branch: '{branch}'
164         - string:
165             name: GIT_BASE
166             default: https://gerrit.opnfv.org/gerrit/$PROJECT
167             description: "Used for overriding the GIT URL coming from parameters macro."
168
169     scm:
170         - gerrit-trigger-scm:
171             credentials-id: '{ssh-credentials}'
172             refspec: '$GERRIT_REFSPEC'
173             choosing-strategy: 'gerrit'
174
175     triggers:
176         - gerrit:
177             trigger-on:
178                 - patchset-created-event:
179                     exclude-drafts: 'false'
180                     exclude-trivial-rebase: 'false'
181                     exclude-no-code-change: 'true'
182                 - draft-published-event
183                 - comment-added-contains-event:
184                     comment-contains-value: 'recheck'
185                 - comment-added-contains-event:
186                     comment-contains-value: 'reverify'
187             projects:
188               - project-compare-type: 'ANT'
189                 project-pattern: 'apex'
190                 branches:
191                   - branch-compare-type: 'ANT'
192                     branch-pattern: '**/{branch}'
193                 file-paths:
194                   - compare-type: ANT
195                     pattern: 'ci/**'
196                   - compare-type: ANT
197                     pattern: 'build/**'
198                   - compare-type: ANT
199                     pattern: 'lib/**'
200                   - compare-type: ANT
201                     pattern: 'config/**'
202
203     properties:
204         - build-blocker:
205             use-build-blocker: true
206             blocking-jobs:
207                 - 'apex-daily.*{stream1}'
208                 - 'apex-deploy.*{stream1}'
209                 - 'apex-build.*{stream1}'
210                 - 'apex-runner.*{stream1}'
211                 - 'apex-verify-{stream1}'
212
213     builders:
214         - 'apex-build'
215         - trigger-builds:
216           - project: 'apex-deploy-virtual-os-nosdn-nofeature-ha-{stream1}'
217             predefined-parameters: |
218               BUILD_DIRECTORY=apex-verify-{stream1}/build_output
219               OPNFV_CLEAN=yes
220             git-revision: false
221             block: true
222         - 'apex-workspace-cleanup'
223
224 - job-template:
225     name: 'apex-runner-{platform}-{scenario}-{stream}'
226
227     # runner jobs for deploying manually
228
229     node: '{slave}'
230
231     disabled: false
232
233     parameters:
234         - apex-parameter:
235             gs-pathname: '{gs-pathname}'
236         - project-parameter:
237             project: '{project}'
238         - gerrit-parameter:
239             branch: '{branch}'
240         - string:
241             name: GIT_BASE
242             default: https://gerrit.opnfv.org/gerrit/$PROJECT
243             description: "Used for overriding the GIT URL coming from parameters macro."
244
245     scm:
246         - gerrit-trigger-scm:
247             credentials-id: '{ssh-credentials}'
248             refspec: ''
249             choosing-strategy: 'default'
250
251     properties:
252         - build-blocker:
253             use-build-blocker: true
254             blocking-jobs:
255                 - 'apex-daily.*{stream}'
256                 - 'apex-verify.*{stream}'
257
258     builders:
259         - trigger-builds:
260           - project: 'apex-deploy-{platform}-{scenario}-{stream}'
261             predefined-parameters:
262               OPNFV_CLEAN=yes
263             git-revision: false
264             block: true
265         - trigger-builds:
266           - project: 'yardstick-apex-{slave}-daily-{stream}'
267             predefined-parameters:
268               DEPLOY_SCENARIO={scenario}
269             block: true
270             block-thresholds:
271                 build-step-failure-threshold: 'never'
272                 failure-threshold: 'never'
273                 unstable-threshold: 'FAILURE'
274         - trigger-builds:
275           - project: 'functest-apex-{slave}-daily-{stream}'
276             predefined-parameters:
277               DEPLOY_SCENARIO={scenario}
278             block: true
279             block-thresholds:
280                 build-step-failure-threshold: 'never'
281                 failure-threshold: 'never'
282                 unstable-threshold: 'FAILURE'
283
284 - job-template:
285     name: 'apex-build-{stream}'
286
287     # Job template for builds
288     #
289     # Required Variables:
290     #     stream:    branch with - in place of / (eg. stable)
291     #     branch:    branch (eg. stable)
292     node: '{slave}'
293
294     disabled: false
295
296     parameters:
297         - project-parameter:
298             project: '{project}'
299         - apex-parameter:
300             gs-pathname: '{gs-pathname}'
301         - gerrit-parameter:
302             branch: '{branch}'
303         - string:
304             name: GIT_BASE
305             default: https://gerrit.opnfv.org/gerrit/$PROJECT
306             description: "Used for overriding the GIT URL coming from parameters macro."
307
308     scm:
309         - git-scm:
310             credentials-id: '{ssh-credentials}'
311             refspec: ''
312             branch: '{branch}'
313
314     properties:
315         - build-blocker:
316             use-build-blocker: true
317             blocking-jobs:
318                 - 'apex-deploy.*{stream}'
319
320     builders:
321         - 'apex-build'
322         - trigger-builds:
323           - project: 'apex-deploy-virtual-os-nosdn-nofeature-ha-{stream}'
324             predefined-parameters: |
325               BUILD_DIRECTORY=apex-build-{stream}/build_output
326               OPNFV_CLEAN=yes
327             git-revision: false
328             block: true
329         - 'apex-upload-artifact'
330
331 - job-template:
332     name: 'apex-deploy-virtual-{scenario}-{stream}'
333
334     # Job template for virtual deployment
335     #
336     # Required Variables:
337     #     stream:    branch with - in place of / (eg. stable)
338     #     branch:    branch (eg. stable)
339     node: '{slave}'
340
341     disabled: false
342
343     scm:
344         - git-scm:
345             credentials-id: '{ssh-credentials}'
346             refspec: ''
347             branch: '{branch}'
348
349     parameters:
350         - project-parameter:
351             project: '{project}'
352         - apex-parameter:
353             gs-pathname: '{gs-pathname}'
354         - string:
355             name: DEPLOY_SCENARIO
356             default: '{scenario}'
357             description: "Scenario to deploy with."
358         - string:
359             name: OPNFV_CLEAN
360             default: 'no'
361             description: "Use yes in lower case to invoke clean. Indicates if the deploy environment should be cleaned before deployment"
362
363     properties:
364         - build-blocker:
365             use-build-blocker: true
366             blocking-jobs:
367                 - 'apex-deploy.*{stream}'
368
369     builders:
370         - 'apex-deploy-virtual'
371         - 'apex-workspace-cleanup'
372
373 - job-template:
374     name: 'apex-deploy-baremetal-{scenario}-{stream}'
375
376     # Job template for baremetal deployment
377     #
378     # Required Variables:
379     #     stream:    branch with - in place of / (eg. stable)
380     #     branch:    branch (eg. stable)
381     node: '{slave}'
382
383     disabled: false
384
385     scm:
386         - git-scm:
387             credentials-id: '{ssh-credentials}'
388             refspec: ''
389             branch: '{branch}'
390
391     parameters:
392         - project-parameter:
393             project: '{project}'
394         - apex-parameter:
395             gs-pathname: '{gs-pathname}'
396         - string:
397             name: DEPLOY_SCENARIO
398             default: '{scenario}'
399             description: "Scenario to deploy with."
400
401     properties:
402         - build-blocker:
403             use-build-blocker: true
404             blocking-jobs:
405                 - 'apex-verify.*{stream}'
406                 - 'apex-deploy.*{stream}'
407                 - 'apex-build.*{stream}'
408
409
410     builders:
411         - 'apex-deploy-baremetal'
412         - 'apex-workspace-cleanup'
413
414 # Brahmaputra Daily
415 - job-template:
416     name: 'apex-daily-{stream2}'
417
418     # Job template for daily build
419     #
420     # Required Variables:
421     #     stream:    branch with - in place of / (eg. stable)
422     #     branch:    branch (eg. stable)
423     node: '{slave}'
424
425     disabled: false
426
427     scm:
428         - git-scm:
429             credentials-id: '{ssh-credentials}'
430             refspec: ''
431             branch: '{branch}'
432
433     parameters:
434         - project-parameter:
435             project: '{project}'
436         - apex-parameter:
437             gs-pathname: '{gs-pathname}'
438
439     properties:
440         - build-blocker:
441             use-build-blocker: true
442             blocking-jobs:
443                 - 'apex-verify.*{stream2}'
444                 - 'apex-deploy.*{stream2}'
445                 - 'apex-build.*{stream2}'
446                 - 'apex-runner.*{stream2}'
447
448     triggers:
449         - 'apex-{stream2}'
450
451     builders:
452         - trigger-builds:
453           - project: 'apex-build-{stream2}'
454             git-revision: true
455             current-parameters: true
456             block: true
457         - trigger-builds:
458           - project: 'apex-deploy-baremetal-os-odl_l2-nofeature-ha-{stream2}'
459             predefined-parameters: |
460               BUILD_DIRECTORY=apex-build-{stream2}/build_output
461               OPNFV_CLEAN=yes
462             git-revision: true
463             block: true
464         - trigger-builds:
465           - project: 'functest-apex-{slave}-daily-{stream2}'
466             predefined-parameters:
467               DEPLOY_SCENARIO=os-odl_l2-nofeature-ha
468             block: true
469             block-thresholds:
470                 build-step-failure-threshold: 'never'
471                 failure-threshold: 'never'
472                 unstable-threshold: 'FAILURE'
473         - trigger-builds:
474           - project: 'yardstick-apex-{slave}-daily-{stream2}'
475             predefined-parameters:
476               DEPLOY_SCENARIO=os-odl_l2-nofeature-ha
477             block: true
478             block-thresholds:
479                 build-step-failure-threshold: 'never'
480                 failure-threshold: 'never'
481                 unstable-threshold: 'FAILURE'
482         - trigger-builds:
483           - project: 'apex-deploy-baremetal-os-onos-nofeature-ha-{stream2}'
484             predefined-parameters:
485               BUILD_DIRECTORY=apex-build-{stream2}/build_output
486             git-revision: true
487             block: true
488         - trigger-builds:
489           - project: 'functest-apex-{slave}-daily-{stream2}'
490             predefined-parameters:
491               DEPLOY_SCENARIO=os-onos-nofeature-ha
492             block: true
493             block-thresholds:
494                 build-step-failure-threshold: 'never'
495                 failure-threshold: 'never'
496                 unstable-threshold: 'FAILURE'
497         - trigger-builds:
498           - project: 'yardstick-apex-{slave}-daily-{stream2}'
499             predefined-parameters:
500               DEPLOY_SCENARIO=os-onos-nofeature-ha
501             block: true
502             block-thresholds:
503                 build-step-failure-threshold: 'never'
504                 failure-threshold: 'never'
505                 unstable-threshold: 'FAILURE'
506         - trigger-builds:
507           - project: 'apex-deploy-baremetal-os-odl_l3-nofeature-ha-{stream2}'
508             predefined-parameters:
509               BUILD_DIRECTORY=apex-build-{stream2}/build_output
510             git-revision: true
511             block: true
512         - trigger-builds:
513           - project: 'functest-apex-{slave}-daily-{stream2}'
514             predefined-parameters:
515               DEPLOY_SCENARIO=os-odl_l3-nofeature-ha
516             block: true
517             block-thresholds:
518                 build-step-failure-threshold: 'never'
519                 failure-threshold: 'never'
520                 unstable-threshold: 'FAILURE'
521         - trigger-builds:
522           - project: 'yardstick-apex-{slave}-daily-{stream2}'
523             predefined-parameters:
524               DEPLOY_SCENARIO=os-odl_l3-nofeature-ha
525             block: true
526             block-thresholds:
527                 build-step-failure-threshold: 'never'
528                 failure-threshold: 'never'
529                 unstable-threshold: 'FAILURE'
530
531 # Master Daily
532 - job-template:
533     name: 'apex-daily-{stream1}'
534
535     # Job template for daily build
536     #
537     # Required Variables:
538     #     stream:    branch with - in place of / (eg. stable)
539     #     branch:    branch (eg. stable)
540     node: '{slave}'
541
542     disabled: false
543
544     scm:
545         - git-scm:
546             credentials-id: '{ssh-credentials}'
547             refspec: ''
548             branch: '{branch}'
549
550     parameters:
551         - project-parameter:
552             project: '{project}'
553         - apex-parameter:
554             gs-pathname: '{gs-pathname}'
555
556     properties:
557         - build-blocker:
558             use-build-blocker: true
559             blocking-jobs:
560                 - 'apex-verify.*{stream1}'
561                 - 'apex-deploy.*{stream1}'
562                 - 'apex-build.*{stream1}'
563                 - 'apex-runner.*{stream1}'
564
565     triggers:
566         - 'apex-{stream1}'
567
568     builders:
569         - trigger-builds:
570           - project: 'apex-build-{stream1}'
571             git-revision: true
572             current-parameters: true
573             block: true
574         - trigger-builds:
575           - project: 'apex-deploy-virtual-nosdn-nofeature-ha-{stream1}'
576             predefined-parameters: |
577               BUILD_DIRECTORY=apex-build-{stream1}/build_output
578               OPNFV_CLEAN=yes
579             git-revision: true
580             block: true
581         - trigger-builds:
582           - project: 'functest-apex-{slave}-daily-{stream1}'
583             predefined-parameters:
584               DEPLOY_SCENARIO=os-nosdn-nofeature-ha
585             block: true
586             block-thresholds:
587                 build-step-failure-threshold: 'never'
588                 failure-threshold: 'never'
589                 unstable-threshold: 'FAILURE'
590         - trigger-builds:
591           - project: 'yardstick-apex-{slave}-daily-{stream1}'
592             predefined-parameters:
593               DEPLOY_SCENARIO=os-nosdn-nofeature-ha
594             block: true
595             block-thresholds:
596                 build-step-failure-threshold: 'never'
597                 failure-threshold: 'never'
598                 unstable-threshold: 'FAILURE'
599
600 ########################
601 # parameter macros
602 ########################
603 - parameter:
604     name: apex-parameter
605     parameters:
606         - string:
607             name: ARTIFACT_NAME
608             default: 'latest'
609             description: "RPM Artifact name that will be appended to GS_URL to deploy a specific artifact"
610         - string:
611             name: ARTIFACT_VERSION
612             default: 'daily'
613             description: "Artifact version type"
614         - string:
615             name: BUILD_DIRECTORY
616             default: $WORKSPACE/build_output
617             description: "Directory where the build artifact will be located upon the completion of the build."
618         - string:
619             name: CACHE_DIRECTORY
620             default: $HOME/opnfv/cache{gs-pathname}
621             description: "Directory where the cache to be used during the build is located."
622         - string:
623             name: GIT_BASE
624             default: https://gerrit.opnfv.org/gerrit/$PROJECT
625             description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
626         - string:
627             name: GS_URL
628             default: artifacts.opnfv.org/$PROJECT{gs-pathname}
629             description: "URL to Google Storage."
630
631 ########################
632 # builder macros
633 ########################
634 - builder:
635     name: 'apex-build'
636     builders:
637         - shell: |
638             #!/bin/bash
639             set -o errexit
640             set -o nounset
641             set -o pipefail
642             # log info to console
643             echo "Starting the build of Apex using OpenStack Master packages. This will take some time..."
644             echo "---------------------------------------------------------------------------------------"
645             echo
646             # create the cache directory if it doesn't exist
647             [[ -d $CACHE_DIRECTORY ]] || mkdir -p $CACHE_DIRECTORY
648             # set OPNFV_ARTIFACT_VERSION
649             if echo $BUILD_TAG | grep "apex-verify" 1> /dev/null; then
650               if echo $GERRIT_BRANCH | grep "brahmaputra" 1> /dev/null; then
651                 export OPNFV_ARTIFACT_VERSION=brahmaputra-dev${BUILD_NUMBER}
652                 export BUILD_ARGS="-v $OPNFV_ARTIFACT_VERSION -c file://$CACHE_DIRECTORY $BUILD_DIRECTORY"
653               else
654                 export OPNFV_ARTIFACT_VERSION=dev${BUILD_NUMBER}
655                 export BUILD_ARGS="-r $OPNFV_ARTIFACT_VERSION -c file://$CACHE_DIRECTORY"
656               fi
657             elif [ "$ARTIFACT_VERSION" == "daily" ]; then
658               if echo $GERRIT_BRANCH | grep "brahmaputra" 1> /dev/null; then
659                 export OPNFV_ARTIFACT_VERSION=brahmaputra-$(date -u +"%Y-%m-%d")
660                 export BUILD_ARGS="-v $OPNFV_ARTIFACT_VERSION -c file://$CACHE_DIRECTORY $BUILD_DIRECTORY"
661               else
662                 export OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d")
663                 export BUILD_ARGS="-r $OPNFV_ARTIFACT_VERSION -c file://$CACHE_DIRECTORY --iso"
664               fi
665             else
666                 export OPNFV_ARTIFACT_VERSION=${ARTIFACT_VERSION}
667             fi
668             # clean for stable but doesn't matter for master
669             if echo $GERRIT_BRANCH | grep "brahmaputra" 1> /dev/null; then
670               sudo opnfv-clean
671             fi
672             # start the build
673             cd $WORKSPACE/ci
674             ./build.sh $BUILD_ARGS
675             RPM_VERSION=$(grep Version $BUILD_DIRECTORY/../build/opnfv-apex.spec | awk '{ print $2 }')-$(echo $OPNFV_ARTIFACT_VERSION | tr -d '_-')
676             # list the contents of BUILD_OUTPUT directory
677             ls -al $BUILD_DIRECTORY
678             # save information regarding artifact into file
679             (
680                 echo "OPNFV_ARTIFACT_VERSION=$OPNFV_ARTIFACT_VERSION"
681                 echo "OPNFV_GIT_URL=$(git config --get remote.origin.url)"
682                 echo "OPNFV_GIT_SHA1=$(git rev-parse HEAD)"
683                 echo "OPNFV_ARTIFACT_URL=$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso"
684                 echo "OPNFV_ARTIFACT_MD5SUM=$(md5sum $BUILD_DIRECTORY/OPNFV-CentOS-7-x86_64-$OPNFV_ARTIFACT_VERSION.iso | cut -d' ' -f1)"
685                 echo "OPNFV_SRPM_URL=$GS_URL/opnfv-apex-$RPM_VERSION.src.rpm"
686                 echo "OPNFV_RPM_URL=$GS_URL/opnfv-apex-$RPM_VERSION.noarch.rpm"
687                 echo "OPNFV_RPM_MD5SUM=$(md5sum $BUILD_DIRECTORY/opnfv-apex-$RPM_VERSION.noarch.rpm | cut -d' ' -f1)"
688                 echo "OPNFV_BUILD_URL=$BUILD_URL"
689             ) > $WORKSPACE/opnfv.properties
690             echo "--------------------------------------------------------"
691             echo "Done!"
692
693 - builder:
694     name: 'apex-workspace-cleanup'
695     builders:
696         - shell: |
697             #!/bin/bash
698             set -o errexit
699             set -o nounset
700             set -o pipefail
701
702             # delete everything that is in $WORKSPACE
703             /bin/rm -rf $WORKSPACE
704
705 - builder:
706     name: 'apex-upload-artifact'
707     builders:
708         - shell: |
709             #!/bin/bash
710             set -o errexit
711             set -o nounset
712             set -o pipefail
713
714             # log info to console
715             echo "Uploading the Apex artifact. This could take some time..."
716             echo "--------------------------------------------------------"
717             echo
718
719             # source the opnfv.properties to get ARTIFACT_VERSION
720             source $WORKSPACE/opnfv.properties
721
722             # upload artifact and additional files to google storage
723             gsutil cp $BUILD_DIRECTORY/OPNFV-CentOS-7-x86_64-$OPNFV_ARTIFACT_VERSION.iso gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso > gsutil.iso.log 2>&1
724             RPM_INSTALL_PATH=$BUILD_DIRECTORY/$(basename $OPNFV_RPM_URL)
725             RPM_LIST=$RPM_INSTALL_PATH
726             for pkg in common undercloud opendaylight-sfc; do
727                 RPM_LIST+=" ${RPM_INSTALL_PATH/opnfv-apex/opnfv-apex-${pkg}}"
728             done
729             SRPM_INSTALL_PATH=$BUILD_DIRECTORY/$(basename $OPNFV_SRPM_URL)
730             SRPM_LIST=$SRPM_INSTALL_PATH
731             for pkg in common undercloud opendaylight-sfc; do
732                 SRPM_LIST+=" ${SRPM_INSTALL_PATH/opnfv-apex/opnfv-apex-${pkg}}"
733             done
734             for artifact in $RPM_LIST $SRPM_LIST; do
735               gsutil cp $artifact gs://$GS_URL/$(basename $artifact) > gsutil.iso.log 2>&1
736             done
737             gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > gsutil.properties.log 2>&1
738             gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/latest.properties > gsutil.latest.log 2>&1
739
740             echo
741             echo "--------------------------------------------------------"
742             echo "Done!"
743             echo "ISO Artifact is available as http://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso"
744             echo "RPM Artifact is available as http://$GS_URL/$(basename $OPNFV_RPM_URL)"
745
746 - builder:
747     name: 'apex-deploy-virtual'
748     builders:
749         - shell: |
750             #!/bin/bash
751             set -o errexit
752             set -o nounset
753             set -o pipefail
754
755             # log info to console
756             echo "Starting the Apex virtual deployment."
757             echo "--------------------------------------------------------"
758             echo
759
760             if [[ $BUILD_DIRECTORY == *verify-master* ]]; then
761                 cd $WORKSPACE/../${BUILD_DIRECTORY/build_output/}
762                 WORKSPACE=$(pwd)
763                 echo "WORKSPACE modified to $WORKSPACE"
764                 cd $WORKSPACE/ci
765             elif [[ ! "$ARTIFACT_NAME" == "latest" ]]; then
766                 # if artifact name is passed the pull a
767                 # specific artifact from artifacts.opnfv.org
768                 RPM_INSTALL_PATH=$GS_URL/$ARTIFACT_NAME
769             else
770                 if [[ $BUILD_DIRECTORY == *verify* ]]; then
771                   BUILD_DIRECTORY=$WORKSPACE/../$BUILD_DIRECTORY
772                   echo "BUILD DIRECTORY modified to $BUILD_DIRECTORY"
773                 elif [[ $BUILD_DIRECTORY == *apex-build* ]]; then
774                   BUILD_DIRECTORY=$WORKSPACE/../$BUILD_DIRECTORY
775                   echo "BUILD DIRECTORY modified to $BUILD_DIRECTORY"
776                 fi
777
778                 if [[ -f ${BUILD_DIRECTORY}/../opnfv.properties ]]; then
779                     # if opnfv.properties exists then use the
780                     # local build. Source the file so we get local OPNFV vars
781                     source ${BUILD_DIRECTORY}/../opnfv.properties
782                     RPM_INSTALL_PATH=${BUILD_DIRECTORY}/$(basename $OPNFV_RPM_URL)
783                 else
784                     if [[ $BUILD_DIRECTORY == *verify* ]]; then
785                       echo "BUILD_DIRECTORY is from a verify job, so will not use latest from URL"
786                       echo "Check that the slave has opnfv.properties in $BUILD_DIRECTORY"
787                       exit 1
788                     elif [[ $BUILD_DIRECTORY == *apex-build* ]]; then
789                       echo "BUILD_DIRECTORY is from a daily job, so will not use latest from URL"
790                       echo "Check that the slave has opnfv.properties in $BUILD_DIRECTORY"
791                       exit 1
792                     fi
793                     # no opnfv.properties means use the latest from artifacts.opnfv.org
794                     # get the latest.properties to get the link to the latest artifact
795                     curl -s -o $WORKSPACE/opnfv.properties http://$GS_URL/latest.properties
796                     [[ -f opnfv.properties ]] || exit 1
797                     # source the file so we get OPNFV vars
798                     source opnfv.properties
799                     RPM_INSTALL_PATH=$OPNFV_RPM_URL
800                 fi
801             fi
802
803             if [ -z "$DEPLOY_SCENARIO" ]; then
804               echo "Deploy scenario not set!"
805               exit 1
806             fi
807
808             # use local build for verify
809             if [[ $BUILD_DIRECTORY == *verify-master* ]]; then
810                 if [ ! -e "${WORKSPACE}/build/lib" ]; then ln -s ${WORKSPACE}/lib ${WORKSPACE}/build/lib; fi
811                 DEPLOY_CMD="./deploy.sh -c ${WORKSPACE}/build -r ${WORKSPACE}/build/images/"
812                 DEPLOY_FILE="${WORKSPACE}/config/deploy/${DEPLOY_SCENARIO}.yaml"
813                 NETWORK_FILE="${WORKSPACE}/config/network/network_settings.yaml"
814             else
815                 RPM_LIST=$RPM_INSTALL_PATH
816                 for pkg in common undercloud opendaylight-sfc; do
817                     RPM_LIST+=" ${RPM_INSTALL_PATH/opnfv-apex/opnfv-apex-${pkg}}"
818                 done
819
820                 # update / install the new rpm
821                 if rpm -q opnfv-apex > /dev/null; then
822                    if [ $(basename $OPNFV_RPM_URL) == $(rpm -q opnfv-apex).rpm ]; then
823                      echo "RPM is already installed"
824                    elif sudo yum update -y $RPM_LIST | grep "does not update installed package"; then
825                        if ! sudo yum downgrade -y $RPM_LIST; then
826                          sudo yum remove -y opnfv-undercloud opnfv-common
827                          sudo yum downgrade -y $RPM_INSTALL_PATH
828                        fi
829                    fi
830                 else
831                    sudo yum install -y $RPM_LIST;
832                 fi
833                 DEPLOY_CMD=opnfv-deploy
834                 DEPLOY_FILE="/etc/opnfv-apex/${DEPLOY_SCENARIO}.yaml"
835                 NETWORK_FILE="/etc/opnfv-apex/network_settings.yaml"
836             fi
837
838             if [ "$OPNFV_CLEAN" == 'yes' ]; then
839                 if [[ $BUILD_DIRECTORY == *verify-master* ]]; then
840                     sudo ./clean.sh
841                 else
842                     sudo opnfv-clean
843                 fi
844             fi
845             # initiate virtual deployment
846             echo "Deploy Scenario set to ${DEPLOY_SCENARIO}"
847             if [ -e $DEPLOY_FILE ]; then
848               sudo $DEPLOY_CMD -v -d ${DEPLOY_FILE} -n $NETWORK_FILE --debug
849             else
850               echo "File does not exist /etc/opnfv-apex/${DEPLOY_SCENARIO}.yaml"
851               exit 1
852             fi
853             echo
854             echo "--------------------------------------------------------"
855             echo "Done!"
856
857 - builder:
858     name: 'apex-deploy-baremetal'
859     builders:
860         - shell: |
861             #!/bin/bash
862             set -o errexit
863             set -o nounset
864             set -o pipefail
865
866             # log info to console
867             echo "Starting the Apex baremetal deployment."
868             echo "--------------------------------------------------------"
869             echo
870
871             if [[ ! "$ARTIFACT_NAME" == "latest" ]]; then
872                 # if artifact name is passed the pull a
873                 # specific artifact from artifacts.opnfv.org
874                 RPM_INSTALL_PATH=$GS_URL/$ARTIFACT_NAME
875             else
876                 if [[ $BUILD_DIRECTORY == *apex-build* ]]; then
877                   BUILD_DIRECTORY=$WORKSPACE/../$BUILD_DIRECTORY
878                   echo "BUILD DIRECTORY modified to $BUILD_DIRECTORY"
879                 fi
880                 if [[ -f ${BUILD_DIRECTORY}/../opnfv.properties ]]; then
881                     # if opnfv.properties exists then use the
882                     # local build. Source the file so we get local OPNFV vars
883                     source ${BUILD_DIRECTORY}/../opnfv.properties
884                     RPM_INSTALL_PATH=${BUILD_DIRECTORY}/$(basename $OPNFV_RPM_URL)
885                 else
886                     # no opnfv.properties means use the latest from artifacts.opnfv.org
887                     # get the latest.properties to get the link to the latest artifact
888                     curl -s -o $WORKSPACE/opnfv.properties http://$GS_URL/latest.properties
889                     [[ -f opnfv.properties ]] || exit 1
890                     # source the file so we get OPNFV vars
891                     source opnfv.properties
892                     RPM_INSTALL_PATH=$OPNFV_RPM_URL
893                 fi
894             fi
895
896             if [ ! -e "$RPM_INSTALL_PATH" ]; then
897                RPM_INSTALL_PATH=http://${OPNFV_RPM_URL}
898             fi
899
900             RPM_LIST=$RPM_INSTALL_PATH
901             for pkg in common undercloud; do
902                 RPM_LIST+=" ${RPM_INSTALL_PATH/opnfv-apex/opnfv-apex-${pkg}}"
903             done
904
905             # update / install the new rpm
906             if rpm -q opnfv-apex > /dev/null; then
907                if [ $(basename $OPNFV_RPM_URL) == $(rpm -q opnfv-apex).rpm ]; then
908                  echo "RPM is already installed"
909                elif sudo yum update -y $RPM_LIST | grep "does not update installed package"; then
910                    if ! sudo yum downgrade -y $RPM_LIST; then
911                      sudo yum remove -y opnfv-undercloud opnfv-common
912                      sudo yum downgrade -y $RPM_INSTALL_PATH
913                    fi
914                fi
915             else
916                sudo yum install -y $RPM_LIST;
917             fi
918
919             # cleanup environment before we start
920             sudo opnfv-clean
921             # initiate baremetal deployment
922             if [ -e /etc/opnfv-apex/network_settings.yaml ]; then
923               if [ -n "$DEPLOY_SCENARIO" ]; then
924                 echo "Deploy Scenario set to ${DEPLOY_SCENARIO}"
925                 if [ -e /etc/opnfv-apex/${DEPLOY_SCENARIO}.yaml ]; then
926                   sudo opnfv-deploy -i  /root/inventory/pod_settings.yaml \
927                   -d /etc/opnfv-apex/${DEPLOY_SCENARIO}.yaml \
928                   -n /root/network/network_settings.yaml --debug
929                 else
930                   echo "File does not exist /etc/opnfv-apex/${DEPLOY_SCENARIO}.yaml"
931                   exit 1
932                 fi
933               else
934                 echo "Deploy scenario not set!"
935                 exit 1
936               fi
937             else
938               echo "File /etc/opnfv-apex/network_settings.yaml does not exist!"
939               exit 1
940             fi
941
942             echo
943             echo "--------------------------------------------------------"
944             echo "Done!"
945
946 #######################
947 # trigger macros
948 ########################
949 - trigger:
950     name: 'apex-master'
951     triggers:
952         - timed: '0 3 * * *'
953 - trigger:
954     name: 'apex-brahmaputra'
955     triggers:
956         - timed: '0 3 * * *'