4 - 'apex-verify-{stream}'
5 - 'apex-merge-{stream}'
6 - 'apex-build-{stream}'
7 - 'apex-deploy-virtual-{scenario}-{stream}'
8 - 'apex-deploy-baremetal-{scenario}-{stream}'
9 - 'apex-daily-{stream}'
11 # stream: branch with - in place of / (eg. stable-arno)
12 # branch: branch (eg. stable/arno)
18 branch: 'stable/brahmaputra'
19 gs-pathname: '/brahmaputra'
25 - 'os-odl_l2-nofeature-ha'
27 - 'os-odl_l3-nofeature-ha'
28 - 'os-onos-nofeature-ha'
29 - 'os-opencontrail-nofeature-ha'
32 name: 'apex-verify-{stream}'
38 gs-pathname: '{gs-pathname}'
45 default: https://gerrit.opnfv.org/gerrit/$PROJECT
46 description: "Used for overriding the GIT URL coming from parameters macro."
50 credentials-id: '{ssh-credentials}'
51 refspec: '$GERRIT_REFSPEC'
52 choosing-strategy: 'gerrit'
57 - patchset-created-event:
58 exclude-drafts: 'false'
59 exclude-trivial-rebase: 'false'
60 exclude-no-code-change: 'false'
61 - draft-published-event
62 - comment-added-contains-event:
63 comment-contains-value: 'recheck'
64 - comment-added-contains-event:
65 comment-contains-value: 'reverify'
67 - project-compare-type: 'ANT'
68 project-pattern: 'apex'
70 - branch-compare-type: 'ANT'
71 branch-pattern: '**/{branch}'
87 use-build-blocker: true
96 - project: 'apex-deploy-virtual-os-odl_l2-nofeature-ha-{stream}'
97 predefined-parameters:
98 BUILD_DIRECTORY=apex-verify-master/build_output
102 - project: 'apex-deploy-virtual-os-onos-nofeature-ha-{stream}'
103 predefined-parameters:
104 BUILD_DIRECTORY=apex-verify-master/build_output
107 - 'apex-workspace-cleanup'
110 name: 'apex-merge-{stream}'
112 # builder-merge job to run JJB update
114 # This job's purpose is to update all the JJB
122 gs-pathname: '{gs-pathname}'
129 default: https://gerrit.opnfv.org/gerrit/$PROJECT
130 description: "Used for overriding the GIT URL coming from parameters macro."
133 - gerrit-trigger-scm:
134 credentials-id: '{ssh-credentials}'
136 choosing-strategy: 'default'
141 - change-merged-event
142 - comment-added-contains-event:
143 comment-contains-value: 'remerge'
145 - project-compare-type: 'ANT'
146 project-pattern: 'apex'
148 - branch-compare-type: 'ANT'
149 branch-pattern: '**/master'
150 forbidden-file-paths:
156 - 'apex-deploy-virtual'
157 - 'apex-workspace-cleanup'
160 name: 'apex-build-{stream}'
162 # Job template for builds
164 # Required Variables:
165 # stream: branch with - in place of / (eg. stable)
166 # branch: branch (eg. stable)
175 gs-pathname: '{gs-pathname}'
180 default: https://gerrit.opnfv.org/gerrit/$PROJECT
181 description: "Used for overriding the GIT URL coming from parameters macro."
185 credentials-id: '{ssh-credentials}'
191 use-build-blocker: true
197 - 'apex-deploy-virtual'
198 - 'apex-upload-artifact'
199 - 'apex-workspace-cleanup'
202 name: 'apex-deploy-virtual-{scenario}-{stream}'
204 # Job template for virtual deployment
206 # Required Variables:
207 # stream: branch with - in place of / (eg. stable)
208 # branch: branch (eg. stable)
215 credentials-id: '{ssh-credentials}'
223 gs-pathname: '{gs-pathname}'
225 name: DEPLOY_SCENARIO
226 default: '{scenario}'
227 description: "Scenario to deploy with."
231 use-build-blocker: true
237 - 'apex-deploy-virtual'
238 - 'apex-workspace-cleanup'
241 name: 'apex-deploy-baremetal-{scenario}-{stream}'
243 # Job template for baremetal deployment
245 # Required Variables:
246 # stream: branch with - in place of / (eg. stable)
247 # branch: branch (eg. stable)
254 credentials-id: '{ssh-credentials}'
262 gs-pathname: '{gs-pathname}'
264 name: DEPLOY_SCENARIO
265 default: '{scenario}'
266 description: "Scenario to deploy with."
270 use-build-blocker: true
278 - 'apex-deploy-baremetal'
279 - 'apex-workspace-cleanup'
282 name: 'apex-daily-{stream}'
284 # Job template for daily build
286 # Required Variables:
287 # stream: branch with - in place of / (eg. stable)
288 # branch: branch (eg. stable)
295 credentials-id: '{ssh-credentials}'
303 gs-pathname: '{gs-pathname}'
307 use-build-blocker: true
318 - project: 'apex-build-{stream}'
320 current-parameters: true
323 - project: 'apex-deploy-baremetal-os-odl_l2-nofeature-ha-{stream}'
327 - project: 'functest-apex-opnfv-jump-1-daily-{stream}'
330 build-step-failure-threshold: 'never'
331 failure-threshold: 'never'
332 unstable-threshold: 'FAILURE'
334 - project: 'yardstick-apex-opnfv-jump-1-daily-{stream}'
337 build-step-failure-threshold: 'never'
338 failure-threshold: 'never'
339 unstable-threshold: 'FAILURE'
341 ########################
343 ########################
350 description: "RPM Artifact name that will be appended to GS_URL to deploy a specific artifact"
352 name: ARTIFACT_VERSION
354 description: "Artifact version type"
356 name: BUILD_DIRECTORY
357 default: $WORKSPACE/build_output
358 description: "Directory where the build artifact will be located upon the completion of the build."
360 name: CACHE_DIRECTORY
361 default: $HOME/opnfv/cache{gs-pathname}
362 description: "Directory where the cache to be used during the build is located."
365 default: https://gerrit.opnfv.org/gerrit/$PROJECT
366 description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
369 default: artifacts.opnfv.org/$PROJECT{gs-pathname}
370 description: "URL to Google Storage."
372 ########################
374 ########################
383 # log info to console
384 echo "Starting the build of Apex using OpenStack Master packages. This will take some time..."
385 echo "---------------------------------------------------------------------------------------"
387 # create the cache directory if it doesn't exist
388 [[ -d $CACHE_DIRECTORY ]] || mkdir -p $CACHE_DIRECTORY
389 # set OPNFV_ARTIFACT_VERSION
390 if echo $GERRIT_BRANCH | grep "brahmaputra" 1> /dev/null; then
391 export OPNFV_ARTIFACT_VERSION="bramaputra.1.rc0"
393 if echo $BUILD_TAG | grep "apex-verify" 1> /dev/null; then
394 export OPNFV_ARTIFACT_VERSION=dev${BUILD_NUMBER}
395 elif [ "$ARTIFACT_VERSION" == "daily" ]; then
396 export OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d")
398 export OPNFV_ARTIFACT_VERSION=${ARTIFACT_VERSION}
403 ./build.sh -v $OPNFV_ARTIFACT_VERSION -c file://$CACHE_DIRECTORY $BUILD_DIRECTORY
404 RPM_VERSION=$(grep Version $BUILD_DIRECTORY/../build/opnfv-apex.spec | awk '{ print $2 }')-$(echo $OPNFV_ARTIFACT_VERSION | tr -d '_-')
405 # list the contents of BUILD_OUTPUT directory
406 ls -al $BUILD_DIRECTORY
407 # save information regarding artifact into file
409 echo "OPNFV_ARTIFACT_VERSION=$OPNFV_ARTIFACT_VERSION"
410 echo "OPNFV_GIT_URL=$(git config --get remote.origin.url)"
411 echo "OPNFV_GIT_SHA1=$(git rev-parse HEAD)"
412 echo "OPNFV_ARTIFACT_URL=$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso"
413 echo "OPNFV_ARTIFACT_MD5SUM=$(md5sum $BUILD_DIRECTORY/OPNFV-CentOS-7-x86_64-$OPNFV_ARTIFACT_VERSION.iso | cut -d' ' -f1)"
414 echo "OPNFV_SRPM_URL=$GS_URL/opnfv-apex-$RPM_VERSION.src.rpm"
415 echo "OPNFV_RPM_URL=$GS_URL/opnfv-apex-$RPM_VERSION.noarch.rpm"
416 echo "OPNFV_RPM_MD5SUM=$(md5sum $BUILD_DIRECTORY/opnfv-apex-$RPM_VERSION.noarch.rpm | cut -d' ' -f1)"
417 echo "OPNFV_BUILD_URL=$BUILD_URL"
418 ) > $WORKSPACE/opnfv.properties
420 echo "--------------------------------------------------------"
423 name: 'apex-workspace-cleanup'
431 # delete everything that is in $WORKSPACE
432 /bin/rm -rf $WORKSPACE
435 name: 'apex-upload-artifact'
443 # log info to console
444 echo "Uploading the Apex artifact. This could take some time..."
445 echo "--------------------------------------------------------"
448 # source the opnfv.properties to get ARTIFACT_VERSION
449 source $WORKSPACE/opnfv.properties
451 # upload artifact and additional files to google storage
452 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
453 gsutil cp $BUILD_DIRECTORY/$(basename $OPNFV_RPM_URL) gs://$GS_URL/$(basename $OPNFV_RPM_URL) > gsutil.iso.log 2>&1
454 gsutil cp $BUILD_DIRECTORY/$(basename $OPNFV_SRPM_URL) gs://$GS_URL/$(basename $OPNFV_SRPM_URL) > gsutil.iso.log 2>&1
455 gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > gsutil.properties.log 2>&1
456 gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/latest.properties > gsutil.latest.log 2>&1
459 echo "--------------------------------------------------------"
461 echo "ISO Artifact is available as http://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso"
462 echo "RPM Artifact is available as http://$GS_URL/$(basename $OPNFV_RPM_URL)"
465 name: 'apex-deploy-virtual'
473 # log info to console
474 echo "Starting the Apex virtual deployment."
475 echo "--------------------------------------------------------"
478 if [[ ! "$ARTIFACT_NAME" == "latest" ]]; then
479 # if artifact name is passed the pull a
480 # specific artifact from artifacts.opnfv.org
481 RPM_INSTALL_PATH=$GS_URL/$ARTIFACT_NAME
483 if [[ $BUILD_DIRECTORY == *verify* ]]; then
484 BUILD_DIRECTORY=$WORKSPACE/../$BUILD_DIRECTORY
485 echo "BUILD DIRECTORY modified to $BUILD_DIRECTORY"
488 if [[ -f ${BUILD_DIRECTORY}/../opnfv.properties ]]; then
489 # if opnfv.properties exists then use the
490 # local build. Source the file so we get local OPNFV vars
491 source ${BUILD_DIRECTORY}/../opnfv.properties
492 RPM_INSTALL_PATH=${BUILD_DIRECTORY}/$(basename $OPNFV_RPM_URL)
494 if [[ $BUILD_DIRECTORY == *verify* ]]; then
495 echo "BUILD_DIRECTORY is from a verify job, so will not use latest from URL"
496 echo "Check that the slave has opnfv.properties in $BUILD_DIRECTORY"
499 # no opnfv.properties means use the latest from artifacts.opnfv.org
500 # get the latest.properties to get the link to the latest artifact
501 curl -s -o $WORKSPACE/opnfv.properties http://$GS_URL/latest.properties
502 [[ -f opnfv.properties ]] || exit 1
503 # source the file so we get OPNFV vars
504 source opnfv.properties
505 RPM_INSTALL_PATH=$OPNFV_RPM_URL
509 RPM_LIST=$RPM_INSTALL_PATH
510 for pkg in common undercloud; do
511 RPM_LIST+=" ${RPM_INSTALL_PATH/opnfv-apex/opnfv-apex-${pkg}}"
514 # update / install the new rpm
515 if rpm -q opnfv-apex > /dev/null; then
516 if [ $(basename $OPNFV_RPM_URL) == $(rpm -q opnfv-apex).rpm ]; then
517 echo "RPM is already installed"
518 elif sudo yum update -y $RPM_LIST | grep "does not update installed package"; then
519 if ! sudo yum downgrade -y $RPM_LIST; then
520 sudo yum remove -y opnfv-undercloud opnfv-common
521 sudo yum downgrade -y $RPM_INSTALL_PATH
525 sudo yum install -y $RPM_LIST;
528 # cleanup virtual machines before we start
530 # initiate virtual deployment
531 if [ -e /etc/opnfv-apex/network_settings.yaml ]; then
532 if [ -n "$DEPLOY_SCENARIO" ]; then
533 echo "Deploy Scenario set to ${DEPLOY_SCENARIO}"
534 if [ -e /etc/opnfv-apex/${DEPLOY_SCENARIO}.yaml ]; then
535 sudo opnfv-deploy -v -d /etc/opnfv-apex/${DEPLOY_SCENARIO}.yaml -n /etc/opnfv-apex/network_settings.yaml
537 echo "File does not exist /etc/opnfv-apex/${DEPLOY_SCENARIO}.yaml"
541 echo "Deploy scenario not set!"
548 echo "--------------------------------------------------------"
552 name: 'apex-deploy-baremetal'
560 # log info to console
561 echo "Starting the Apex baremetal deployment."
562 echo "--------------------------------------------------------"
565 if [[ ! "$ARTIFACT_NAME" == "latest" ]]; then
566 # if artifact name is passed the pull a
567 # specific artifact from artifacts.opnfv.org
568 RPM_INSTALL_PATH=$GS_URL/$ARTIFACT_NAME
570 if [[ -f opnfv.properties ]]; then
571 # if opnfv.properties exists then use the
572 # local build. Source the file so we get local OPNFV vars
573 source opnfv.properties
574 RPM_INSTALL_PATH=build_output/$(basename $OPNFV_RPM_URL)
576 # no opnfv.properties means use the latest from artifacts.opnfv.org
577 # get the latest.properties to get the link to the latest artifact
578 curl -s -o $WORKSPACE/opnfv.properties http://$GS_URL/latest.properties
579 [[ -f opnfv.properties ]] || exit 1
580 # source the file so we get OPNFV vars
581 source opnfv.properties
582 RPM_INSTALL_PATH=$OPNFV_RPM_URL
586 source opnfv.properties
587 RPM_INSTALL_PATH=build_output/$(basename $OPNFV_RPM_URL)
588 if [ ! -e "$RPM_INSTALL_PATH" ]; then
589 RPM_INSTALL_PATH=http://${OPNFV_RPM_URL}
592 RPM_LIST=$RPM_INSTALL_PATH
593 for pkg in common undercloud; do
594 RPM_LIST+=" ${RPM_INSTALL_PATH/opnfv-apex/opnfv-apex-${pkg}}"
597 # update / install the new rpm
598 if rpm -q opnfv-apex > /dev/null; then
599 if [ $(basename $OPNFV_RPM_URL) == $(rpm -q opnfv-apex).rpm ]; then
600 echo "RPM is already installed"
601 elif sudo yum update -y $RPM_LIST | grep "does not update installed package"; then
602 if ! sudo yum downgrade -y $RPM_LIST; then
603 sudo yum remove -y opnfv-undercloud opnfv-common
604 sudo yum downgrade -y $RPM_INSTALL_PATH
608 sudo yum install -y $RPM_LIST;
611 # cleanup environment before we start
613 # initiate baremetal deployment
614 if [ -e /etc/opnfv-apex/network_settings.yaml ]; then
615 if [ -n "$DEPLOY_SCENARIO" ]; then
616 echo "Deploy Scenario set to ${DEPLOY_SCENARIO}"
617 if [ -e /etc/opnfv-apex/${DEPLOY_SCENARIO}.yaml ]; then
618 sudo opnfv-deploy -i /root/inventory/pod_settings.yaml \
619 -d /etc/opnfv-apex/${DEPLOY_SCENARIO}.yaml \
620 -n /root/network_settings.yaml
622 echo "File does not exist /etc/opnfv-apex/${DEPLOY_SCENARIO}.yaml"
626 echo "Deploy scenario not set!"
629 echo "File /etc/opnfv-apex/network_settings.yaml does not exist!"
634 echo "--------------------------------------------------------"
637 #######################
639 ########################