1 ########################
2 # Job configuration for genesis/fuel
3 ########################
13 - 'genesis-fuel-verify'
14 - 'genesis-fuel-merge'
15 - 'genesis-fuel-daily-{stream}'
16 - 'genesis-fuel-build'
17 - 'genesis-fuel-deploy'
18 - 'genesis-fuel-deploy-virtual'
24 ########################
26 ########################
29 name: 'genesis-fuel-verify'
31 project-type: freestyle
45 artifactDaysToKeep: -1
54 installer: '{installer}'
58 credentials-id: '{ssh-credentials}'
59 refspec: '$GERRIT_REFSPEC'
60 choosing-strategy: 'gerrit'
63 - ssh-agent-credentials:
64 user: '{ssh-credentials}'
69 - patchset-created-event:
70 exclude-drafts: 'false'
71 exclude-trivial-rebase: 'false'
72 exclude-no-code-change: 'false'
73 - draft-published-event
74 - comment-added-contains-event:
75 comment-contains-value: 'recheck'
76 - comment-added-contains-event:
77 comment-contains-value: 'reverify'
79 - project-compare-type: 'ANT'
80 project-pattern: 'genesis'
82 - branch-compare-type: 'ANT'
83 branch-pattern: '**/master'
88 pattern: '{installer}/**'
92 - 'fuel-workspace-cleanup'
95 name: 'genesis-fuel-merge'
97 project-type: freestyle
111 artifactDaysToKeep: -1
120 installer: '{installer}'
123 - gerrit-trigger-scm:
124 credentials-id: '{ssh-credentials}'
126 choosing-strategy: 'default'
129 - ssh-agent-credentials:
130 user: '{ssh-credentials}'
135 - change-merged-event
136 - comment-added-contains-event:
137 comment-contains-value: 'remerge'
139 - project-compare-type: 'ANT'
140 project-pattern: 'genesis'
142 - branch-compare-type: 'ANT'
143 branch-pattern: '**/master'
148 pattern: '{installer}/**'
152 - 'fuel-workspace-cleanup'
155 name: 'genesis-fuel-daily-{stream}'
157 project-type: freestyle
167 installer: '{installer}'
171 credentials-id: '{ssh-credentials}'
176 - timed: 'H */6 * * *'
181 artifactDaysToKeep: -1
182 artifactNumToKeep: -1
186 - project: 'genesis-fuel-build'
190 - project: 'genesis-fuel-deploy-virtual'
194 - project: 'genesis-fuel-deploy'
198 - project: 'functest-opnfv-jump-1'
202 name: 'genesis-fuel-build'
204 project-type: freestyle
211 artifactDaysToKeep: -1
212 artifactNumToKeep: -1
218 installer: '{installer}'
222 credentials-id: '{ssh-credentials}'
228 - 'fuel-upload-artifact'
229 - 'fuel-workspace-cleanup'
232 name: 'genesis-fuel-deploy'
234 project-type: freestyle
244 installer: '{installer}'
247 default: ssh://gerrit.opnfv.org:29418/$PROJECT
248 description: "POD1 has some issues with cloning using https so that's why GIT_BASE is overriden here again."
252 credentials-id: '{ssh-credentials}'
259 artifactDaysToKeep: -1
260 artifactNumToKeep: -1
263 - 'fuel-download-artifact'
267 name: 'genesis-fuel-deploy-virtual'
269 project-type: freestyle
279 installer: '{installer}'
283 credentials-id: '{ssh-credentials}'
290 artifactDaysToKeep: -1
291 artifactNumToKeep: -1
294 - 'fuel-deploy-virtual'
296 ########################
298 ########################
304 default: '{installer}'
305 description: "Installer to use."
307 name: BUILD_DIRECTORY
308 default: $WORKSPACE/build_output
309 description: "Directory where the build artifact will be located upon the completion of the build."
311 name: CACHE_DIRECTORY
312 default: $HOME/opnfv/cache/genesis-$INSTALLER
313 description: "Directory where the cache to be used during the build is located."
316 default: https://gerrit.opnfv.org/gerrit/$PROJECT
317 description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
320 default: artifacts.opnfv.org/$PROJECT/$INSTALLER
321 description: "URL to Google Storage."
323 ########################
325 ########################
335 # log info to console
336 echo "Starting the build of $INSTALLER. This could take some time..."
337 echo "--------------------------------------------------------"
340 # create the cache directory if it doesn't exist
341 [[ -d $CACHE_DIRECTORY ]] || mkdir -p $CACHE_DIRECTORY
343 # set OPNFV_ARTIFACT_VERSION
344 export OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d_%H-%M-%S")
347 cd $WORKSPACE/$INSTALLER/ci
348 ./build.sh -v $OPNFV_ARTIFACT_VERSION -c file://$CACHE_DIRECTORY $BUILD_DIRECTORY
350 # list the build artifacts
351 ls -al $BUILD_DIRECTORY
353 # save information regarding artifact into file
355 echo "OPNFV_ARTIFACT_VERSION=$OPNFV_ARTIFACT_VERSION"
356 echo "OPNFV_GIT_URL=$(git config --get remote.origin.url)"
357 echo "OPNFV_GIT_SHA1=$(git rev-parse HEAD)"
358 echo "OPNFV_ARTIFACT_URL=$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso"
359 echo "OPNFV_ARTIFACT_MD5SUM=$(md5sum $BUILD_DIRECTORY/opnfv-$OPNFV_ARTIFACT_VERSION.iso | cut -d' ' -f1)"
360 echo "OPNFV_BUILD_URL=$BUILD_URL"
361 ) > $WORKSPACE/opnfv.properties
364 echo "--------------------------------------------------------"
376 # source the file so we get OPNFV vars
377 source latest.properties
379 # echo the info about artifact that is used during the deployment
380 echo "Using $(echo $OPNFV_ARTIFACT_URL | cut -d'/' -f4) for deployment"
382 # create TMPDIR if it doesn't exist
383 export TMPDIR=$HOME/tmpdir
384 [[ -d $TMPDIR ]] || mkdir -p $TMPDIR
386 # change permissions down to TMPDIR
391 export TOPDIR=$WORKSPACE/fuel/prototypes/auto-deploy
393 # log info to console
394 echo "Starting the deployment using $INSTALLER. This could take some time..."
395 echo "--------------------------------------------------------"
398 # start the deployment
399 echo "Issuing command"
400 echo "sudo TMPDIR=${TMPDIR} ${TOPDIR}/deploy/deploy.sh ${WORKSPACE}/opnfv.iso ${TOPDIR}/configs/lf_pod1/dea.yaml ${TOPDIR}/configs/lf_pod1/dha.yaml"
401 sudo TMPDIR=${TMPDIR} ${TOPDIR}/deploy/deploy.sh ${WORKSPACE}/opnfv.iso ${TOPDIR}/configs/lf_pod1/dea.yaml ${TOPDIR}/configs/lf_pod1/dha.yaml
404 echo "--------------------------------------------------------"
408 name: 'fuel-deploy-virtual'
416 # log info to console
417 echo "Starting the deployment on virtual environment using $INSTALLER. This could take some time..."
418 echo "--------------------------------------------------------"
421 ssh -o BatchMode=yes -o TCPKeepAlive=yes cideploy@10.118.34.205 ./cideploy.sh
424 echo "--------------------------------------------------------"
428 name: 'fuel-upload-artifact'
436 # log info to console
437 echo "Uploading the $INSTALLER artifact. This could take some time..."
438 echo "--------------------------------------------------------"
441 # source the opnfv.properties to get ARTIFACT_VERSION
442 source $WORKSPACE/opnfv.properties
444 # upload artifact and additional files to google storage
445 gsutil cp $BUILD_DIRECTORY/opnfv-$OPNFV_ARTIFACT_VERSION.iso gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso > gsutil.iso.log 2>&1
446 gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > gsutil.properties.log 2>&1
447 gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/latest.properties > gsutil.latest.log 2>&1
450 echo "--------------------------------------------------------"
454 name: 'fuel-download-artifact'
462 # log info to console
463 echo "Downloading the $INSTALLER artifact. This could take some time..."
464 echo "--------------------------------------------------------"
467 # get the latest.properties file in order to get info regarding latest artifact
468 curl -s -o $WORKSPACE/latest.properties http://$GS_URL/latest.properties
470 # check if we got the file
471 [[ -f latest.properties ]] || exit 1
473 # source the file so we get OPNFV vars
474 source latest.properties
477 curl -s -o $WORKSPACE/opnfv.iso http://$OPNFV_ARTIFACT_URL > gsutil.iso.log 2>&1
480 ls -al $WORKSPACE/opnfv.iso
483 echo "--------------------------------------------------------"
487 name: 'fuel-workspace-cleanup'
495 # delete everything that is in $WORKSPACE
496 /bin/rm -rf $WORKSPACE