Disable fuel verify and merge
[releng.git] / jjb / genesis / genesis-fuel.yml
1 ########################
2 # Job configuration for genesis/fuel
3 ########################
4 - project:
5
6     name: genesis-fuel
7
8     project: 'genesis'
9
10     installer: 'fuel'
11
12     jobs:
13         - 'genesis-fuel-verify-{stream}'
14         - 'genesis-fuel-merge-{stream}'
15         - 'genesis-fuel-daily-{stream}'
16         - 'genesis-fuel-build-{stream}'
17         - 'genesis-fuel-deploy-{stream}'
18         - 'genesis-fuel-deploy-virtual-master'
19         - 'genesis-fuel-deploy-runner-{stream}'
20
21     # stream:    branch with - in place of / (eg. stable-arno)
22     # branch:    branch (eg. stable/arno)
23     stream:
24         - master:
25             branch: 'master'
26             gs-pathname: ''
27         - stable-arno:
28             branch: 'stable/arno'
29             gs-pathname: '/arno'
30
31 ########################
32 # job templates
33 ########################
34
35 - job-template:
36     name: 'genesis-fuel-verify-{stream}'
37
38     project-type: freestyle
39
40     node: ericsson-build
41
42     concurrent: true
43
44     properties:
45         - throttle:
46             enabled: true
47             max-total: 3
48
49     logrotate:
50         daysToKeep: 30
51         numToKeep: 10
52         artifactDaysToKeep: -1
53         artifactNumToKeep: -1
54
55     parameters:
56         - project-parameter:
57             project: '{project}'
58         - gerrit-parameter:
59             branch: '{branch}'
60         - fuel-parameter:
61             installer: '{installer}'
62             gs-pathname: '{gs-pathname}'
63
64     scm:
65         - gerrit-trigger-scm:
66             credentials-id: '{ssh-credentials}'
67             refspec: '$GERRIT_REFSPEC'
68             choosing-strategy: 'gerrit'
69
70     wrappers:
71         - ssh-agent-credentials:
72             user: '{ssh-credentials}'
73
74     triggers:
75         - gerrit:
76             trigger-on:
77                 - patchset-created-event:
78                     exclude-drafts: 'false'
79                     exclude-trivial-rebase: 'false'
80                     exclude-no-code-change: 'false'
81                 - draft-published-event
82                 - comment-added-contains-event:
83                     comment-contains-value: 'recheck'
84                 - comment-added-contains-event:
85                     comment-contains-value: 'reverify'
86             projects:
87               - project-compare-type: 'ANT'
88                 project-pattern: 'genesis'
89                 branches:
90                   - branch-compare-type: 'ANT'
91                     branch-pattern: '**/{branch}'
92                 file-paths:
93                   - compare-type: ANT
94                     pattern: 'common/**'
95                   - compare-type: ANT
96                     pattern: '{installer}/**'
97
98     builders:
99         - shell:
100             echo "Verify disabled"
101
102 #- 'fuel-build'
103 #- 'fuel-workspace-cleanup'
104
105 - job-template:
106     name: 'genesis-fuel-merge-{stream}'
107
108     project-type: freestyle
109
110     node: ericsson-build
111
112     concurrent: true
113
114     properties:
115         - throttle:
116             enabled: true
117             max-total: 2
118
119     logrotate:
120         daysToKeep: 30
121         numToKeep: 40
122         artifactDaysToKeep: -1
123         artifactNumToKeep: 5
124
125     parameters:
126         - project-parameter:
127             project: '{project}'
128         - gerrit-parameter:
129             branch: '{branch}'
130         - fuel-parameter:
131             installer: '{installer}'
132             gs-pathname: ''
133
134     scm:
135         - gerrit-trigger-scm:
136             credentials-id: '{ssh-credentials}'
137             refspec: ''
138             choosing-strategy: 'default'
139
140     wrappers:
141         - ssh-agent-credentials:
142             user: '{ssh-credentials}'
143
144     triggers:
145         - gerrit:
146             trigger-on:
147                 - change-merged-event
148                 - comment-added-contains-event:
149                     comment-contains-value: 'remerge'
150             projects:
151               - project-compare-type: 'ANT'
152                 project-pattern: 'genesis'
153                 branches:
154                     - branch-compare-type: 'ANT'
155                       branch-pattern: '**/{branch}'
156                 file-paths:
157                   - compare-type: ANT
158                     pattern: 'common/**'
159                   - compare-type: ANT
160                     pattern: '{installer}/**'
161
162     builders:
163         - shell:
164             echo "Merge Job Disabled"
165
166 #- 'fuel-build'
167 #- 'fuel-workspace-cleanup'
168
169 - job-template:
170     name: 'genesis-fuel-daily-{stream}'
171
172     project-type: freestyle
173
174     node: ericsson-build
175
176     disabled: false
177
178     triggers:
179         - 'fuel-{stream}'
180
181     parameters:
182         - project-parameter:
183             project: '{project}'
184         - fuel-parameter:
185             installer: '{installer}'
186             gs-pathname: '{gs-pathname}'
187
188     scm:
189         - git-scm:
190             credentials-id: '{ssh-credentials}'
191             refspec: ''
192             branch: '{branch}'
193
194     logrotate:
195         daysToKeep: 30
196         numToKeep: 10
197         artifactDaysToKeep: -1
198         artifactNumToKeep: -1
199
200     builders:
201         - trigger-builds:
202           - project: 'genesis-fuel-build-{stream}'
203             git-revision: true
204             block: true
205         - trigger-builds:
206           - project: 'genesis-fuel-deploy-runner-{stream}'
207             git-revision: true
208             block: true
209         - trigger-builds:
210           - project: 'functest-opnfv-jump-1'
211             block: true
212         - trigger-builds:
213           - project: 'yardstick-opnfv-jump-1'
214             block: true
215
216 - job-template:
217     name: 'genesis-fuel-build-{stream}'
218
219     project-type: freestyle
220
221     node: ericsson-build
222
223     logrotate:
224         daysToKeep: 30
225         numToKeep: 10
226         artifactDaysToKeep: -1
227         artifactNumToKeep: -1
228
229     parameters:
230         - project-parameter:
231             project: '{project}'
232         - fuel-parameter:
233             installer: '{installer}'
234             gs-pathname: '{gs-pathname}'
235
236     scm:
237         - git-scm:
238             credentials-id: '{ssh-credentials}'
239             refspec: ''
240             branch: '{branch}'
241
242     builders:
243         - 'fuel-build'
244         - 'fuel-upload-artifact'
245         - 'fuel-workspace-cleanup'
246
247 - job-template:
248     name: 'genesis-fuel-deploy-{stream}'
249
250     project-type: freestyle
251
252     disabled: false
253
254     node: opnfv-jump-2
255
256     parameters:
257         - project-parameter:
258             project: '{project}'
259         - fuel-parameter:
260             installer: '{installer}'
261             gs-pathname: '{gs-pathname}'
262         - string:
263             name: GIT_BASE
264             default: ssh://gerrit.opnfv.org:29418/$PROJECT
265             description: "POD1 has some issues with cloning using https so that's why GIT_BASE is overriden here again."
266
267     scm:
268         - git-scm:
269             credentials-id: '{ssh-credentials}'
270             refspec: ''
271             branch: '{branch}'
272
273     logrotate:
274         daysToKeep: 30
275         numToKeep: 10
276         artifactDaysToKeep: -1
277         artifactNumToKeep: -1
278
279     builders:
280         - 'fuel-download-artifact'
281         - 'fuel-deploy-{stream}'
282
283 - job-template:
284     name: 'genesis-fuel-deploy-runner-{stream}'
285
286     project-type: freestyle
287
288     disabled: false
289
290     node: master
291
292     logrotate:
293         daysToKeep: 30
294         numToKeep: 10
295         artifactDaysToKeep: -1
296         artifactNumToKeep: -1
297
298     parameters:
299         - project-parameter:
300             project: '{project}'
301         - fuel-parameter:
302             installer: '{installer}'
303             gs-pathname: '{gs-pathname}'
304         - string:
305             name: GIT_BASE
306             default: ssh://gerrit.opnfv.org:29418/$PROJECT
307             description: "Used for overriding the GIT URL coming from parameters macro."
308
309     scm:
310         - git-scm:
311             credentials-id: '{ssh-credentials}'
312             refspec: ''
313             branch: '{branch}'
314
315     builders:
316         - 'fuel-lab-reconfig'
317         - trigger-builds:
318           - project: 'genesis-fuel-deploy-{stream}'
319             git-revision: true
320             block: true
321
322 - job-template:
323     name: 'genesis-fuel-deploy-virtual-master'
324
325     project-type: freestyle
326
327     disabled: false
328
329     node: ericsson-build
330
331     parameters:
332         - project-parameter:
333             project: '{project}'
334         - fuel-parameter:
335             installer: '{installer}'
336             gs-pathname: ''
337
338     scm:
339         - git-scm:
340             credentials-id: '{ssh-credentials}'
341             refspec: ''
342             branch: master
343
344     logrotate:
345         daysToKeep: 30
346         numToKeep: 10
347         artifactDaysToKeep: -1
348         artifactNumToKeep: -1
349
350     builders:
351         - 'fuel-deploy-virtual'
352
353 ########################
354 # parameter macros
355 ########################
356 - parameter:
357     name: fuel-parameter
358     parameters:
359         - string:
360             name: INSTALLER
361             default: '{installer}'
362             description: "Installer to use."
363         - string:
364             name: BUILD_DIRECTORY
365             default: $WORKSPACE/build_output
366             description: "Directory where the build artifact will be located upon the completion of the build."
367         - string:
368             name: CACHE_DIRECTORY
369             default: $HOME/opnfv/cache/genesis-$INSTALLER
370             description: "Directory where the cache to be used during the build is located."
371         - string:
372             name: GIT_BASE
373             default: https://gerrit.opnfv.org/gerrit/$PROJECT
374             description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
375         - string:
376             name: GS_URL
377             default: artifacts.opnfv.org/$PROJECT/$INSTALLER{gs-pathname}
378             description: "URL to Google Storage."
379
380 ########################
381 # builder macros
382 ########################
383 - builder:
384     name: 'fuel-build'
385     builders:
386         - shell: |
387             #!/bin/bash
388             set -o errexit
389             set -o nounset
390             set -o pipefail
391
392             # log info to console
393             echo "Starting the build of $INSTALLER. This could take some time..."
394             echo "--------------------------------------------------------"
395             echo
396
397             # create the cache directory if it doesn't exist
398             [[ -d $CACHE_DIRECTORY ]] || mkdir -p $CACHE_DIRECTORY
399
400             # set OPNFV_ARTIFACT_VERSION
401             export OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d_%H-%M-%S")
402
403             # start the build
404             cd $WORKSPACE/$INSTALLER/ci
405             ./build.sh -v $OPNFV_ARTIFACT_VERSION -c file://$CACHE_DIRECTORY $BUILD_DIRECTORY
406
407             # list the build artifacts
408             ls -al $BUILD_DIRECTORY
409
410             # save information regarding artifact into file
411             (
412                 echo "OPNFV_ARTIFACT_VERSION=$OPNFV_ARTIFACT_VERSION"
413                 echo "OPNFV_GIT_URL=$(git config --get remote.origin.url)"
414                 echo "OPNFV_GIT_SHA1=$(git rev-parse HEAD)"
415                 echo "OPNFV_ARTIFACT_URL=$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso"
416                 echo "OPNFV_ARTIFACT_MD5SUM=$(md5sum $BUILD_DIRECTORY/opnfv-$OPNFV_ARTIFACT_VERSION.iso | cut -d' ' -f1)"
417                 echo "OPNFV_BUILD_URL=$BUILD_URL"
418             ) > $WORKSPACE/opnfv.properties
419
420             echo
421             echo "--------------------------------------------------------"
422             echo "Done!"
423
424 - builder:
425     name: 'fuel-deploy-master'
426     builders:
427         - shell: |
428             #!/bin/bash
429             set -o errexit
430             set -o nounset
431             set -o pipefail
432
433             # source the file so we get OPNFV vars
434             source latest.properties
435
436             # echo the info about artifact that is used during the deployment
437             echo "Using $(echo $OPNFV_ARTIFACT_URL | cut -d'/' -f4) for deployment"
438
439             # create TMPDIR if it doesn't exist
440             export TMPDIR=$HOME/tmpdir
441             [[ -d $TMPDIR ]] || mkdir -p $TMPDIR
442
443             # change permissions down to TMPDIR
444             chmod a+x $HOME
445             chmod a+x $TMPDIR
446
447             # set TOPDIR
448             export TOPDIR=$WORKSPACE/fuel/prototypes/auto-deploy
449
450             # log info to console
451             echo "Starting the deployment using $INSTALLER. This could take some time..."
452             echo "--------------------------------------------------------"
453             echo
454
455             # start the deployment
456             echo "Issuing command"
457             echo "sudo TMPDIR=${TMPDIR} ${TOPDIR}/deploy/deploy.sh ${WORKSPACE}/opnfv.iso ${TOPDIR}/configs/lf_pod1/dea_no-ha.yaml ${TOPDIR}/configs/lf_pod1/dha.yaml"
458             sudo TMPDIR=${TMPDIR} ${TOPDIR}/deploy/deploy.sh ${WORKSPACE}/opnfv.iso ${TOPDIR}/configs/lf_pod1/dea_no-ha.yaml ${TOPDIR}/configs/lf_pod1/dha.yaml
459
460             echo
461             echo "--------------------------------------------------------"
462             echo "Done!"
463
464 - builder:
465     name: 'fuel-deploy-stable-arno'
466     builders:
467         - shell: |
468             #!/bin/bash
469             set -o errexit
470             set -o nounset
471             set -o pipefail
472
473             # source the file so we get OPNFV vars
474             source latest.properties
475
476             # echo the info about artifact that is used during the deployment
477             echo "Using $(echo $OPNFV_ARTIFACT_URL | cut -d'/' -f4) for deployment"
478
479             # create TMPDIR if it doesn't exist
480             export TMPDIR=$HOME/tmp/$JOB_NAME
481             [[ -d $TMPDIR ]] || mkdir -p $TMPDIR
482
483             # change permissions down to TMPDIR
484             chmod a+x $HOME
485             chmod a+x $TMPDIR
486
487             # log info to console
488             echo "Starting the deployment using $INSTALLER. This could take some time..."
489             echo "--------------------------------------------------------"
490             echo
491
492             # start the deployment
493             echo "Issuing command"
494             echo "sudo $WORKSPACE/fuel/ci/deploy.sh $WORKSPACE/opnfv.iso $WORKSPACE/fuel/deploy/baremetal/conf/linux_foundation_lab/ha/dea.yaml $WORKSPACE/fuel/deploy/baremetal/conf/linux_foundation_lab/ha/dha.yaml -s $TMPDIR"
495
496             sudo $WORKSPACE/fuel/ci/deploy.sh $WORKSPACE/opnfv.iso $WORKSPACE/fuel/deploy/baremetal/conf/linux_foundation_lab/ha/dea.yaml $WORKSPACE/fuel/deploy/baremetal/conf/linux_foundation_lab/ha/dha.yaml -s $TMPDIR
497             echo
498             echo "--------------------------------------------------------"
499             echo "Done!"
500
501 - builder:
502     name: 'fuel-deploy-virtual'
503     builders:
504         - shell: |
505             #!/bin/bash
506             set -o errexit
507             set -o nounset
508             set -o pipefail
509
510             # log info to console
511             echo "Starting the deployment on virtual environment using $INSTALLER. This could take some time..."
512             echo "--------------------------------------------------------"
513             echo
514
515             ssh -o BatchMode=yes -o TCPKeepAlive=yes cideploy@10.118.34.205 ./cideploy.sh
516
517             echo
518             echo "--------------------------------------------------------"
519             echo "Done!"
520
521 - builder:
522     name: 'fuel-upload-artifact'
523     builders:
524         - shell: |
525             #!/bin/bash
526             set -o errexit
527             set -o nounset
528             set -o pipefail
529
530             # log info to console
531             echo "Uploading the $INSTALLER artifact. This could take some time..."
532             echo "--------------------------------------------------------"
533             echo
534
535             # source the opnfv.properties to get ARTIFACT_VERSION
536             source $WORKSPACE/opnfv.properties
537
538             # upload artifact and additional files to google storage
539             gsutil cp $BUILD_DIRECTORY/opnfv-$OPNFV_ARTIFACT_VERSION.iso gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso > gsutil.iso.log 2>&1
540             gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > gsutil.properties.log 2>&1
541             gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/latest.properties > gsutil.latest.log 2>&1
542
543             echo
544             echo "--------------------------------------------------------"
545             echo "Done!"
546             echo "Artifact is available as http://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso"
547
548 - builder:
549     name: 'fuel-download-artifact'
550     builders:
551         - shell: |
552             #!/bin/bash
553             set -o errexit
554             set -o nounset
555             set -o pipefail
556
557             # get the latest.properties file in order to get info regarding latest artifact
558             curl -s -o $WORKSPACE/latest.properties http://$GS_URL/latest.properties
559
560             # check if we got the file
561             [[ -f latest.properties ]] || exit 1
562
563             # source the file so we get OPNFV vars
564             source latest.properties
565
566             # log info to console
567             echo "Downloading the $INSTALLER artifact using URL http://$OPNFV_ARTIFACT_URL"
568             echo "This could take some time..."
569             echo "--------------------------------------------------------"
570             echo
571
572             # download the file
573             curl -s -o $WORKSPACE/opnfv.iso http://$OPNFV_ARTIFACT_URL > gsutil.iso.log 2>&1
574
575             # list the file
576             ls -al $WORKSPACE/opnfv.iso
577
578             echo
579             echo "--------------------------------------------------------"
580             echo "Done!"
581
582 - builder:
583     name: 'fuel-workspace-cleanup'
584     builders:
585         - shell: |
586             #!/bin/bash
587             set -o errexit
588             set -o nounset
589             set -o pipefail
590
591             # delete everything that is in $WORKSPACE
592             /bin/rm -rf $WORKSPACE
593
594 - builder:
595     name: 'fuel-lab-reconfig'
596     builders:
597         - shell: |
598             #!/bin/bash
599             set -o errexit
600             set -o nounset
601             set -o pipefail
602
603             # check to see if ucs login info file exists
604             if [ -e ~/.ssh/ucs_creds ];then
605               source ~/.ssh/ucs_creds
606             else
607               echo "Unable to find UCS credentials for LF lab reconfiguration...Exiting"
608               exit 1
609             fi
610
611             # clone releng
612             echo "Cloning releng repo..."
613             if ! GIT_SSL_NO_VERIFY=true git clone https://gerrit.opnfv.org/gerrit/releng; then
614               echo "Unable to clone releng repo...Exiting"
615               exit 1
616             fi
617
618             # log info to console
619             echo "Starting the lab reconfiguration for $INSTALLER..."
620             echo "--------------------------------------------------------"
621             echo
622
623             # create venv
624             $WORKSPACE/releng/utils/lab-reconfiguration/create_venv.sh
625
626             # disable nounset because 'activate' script contains unbound variable(s)
627             set +o nounset
628             # enter venv
629             source $WORKSPACE/releng/utils/lab-reconfiguration/venv/bin/activate
630             # set nounset back again
631             set -o nounset
632
633             # verify we are in venv
634             if [[ ! $(which python | grep venv) ]]; then
635               echo "Unable to activate venv...Exiting"
636               exit 1
637             fi
638
639             python $WORKSPACE/releng/utils/lab-reconfiguration/reconfigUcsNet.py -i $ucs_host -u $ucs_user -p $ucs_password -f $WORKSPACE/releng/utils/lab-reconfiguration/fuel.yaml
640
641             # while undergoing reboot
642             sleep 30
643
644             # check to see if slave is back up
645             ping_counter=0
646             ping_flag=0
647             while [ "$ping_counter" -lt 20 ]; do
648               if [[ $(ping -c 5 172.30.10.72) ]]; then
649                 ping_flag=1
650                 break
651               fi
652               ((ping_counter++))
653               sleep 10
654             done
655
656             if [ "$ping_flag" -eq 1 ]; then
657               echo "Slave is pingable, now wait 60 seconds for services to start"
658               sleep 60
659             else
660               echo "Slave did not come back up after reboot: please check opnfv-jump-2"
661               exit 1
662             fi
663
664             set +o nounset
665             deactivate
666
667             echo
668             echo "--------------------------------------------------------"
669             echo "Done!"
670
671 ########################
672 # trigger macros
673 ########################
674 - trigger:
675     name: 'fuel-master'
676     triggers:
677         - timed: '0 21 * * *'
678
679 - trigger:
680     name: 'fuel-stable-arno'
681     triggers:
682         - timed: '0 3 * * *'