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}'
324 predefined-parameters:
325 DEPLOY_SCENARIO="os-odl_l2-nofeature-ha"
329 - project: 'functest-apex-opnfv-jump-1-daily-{stream}'
332 build-step-failure-threshold: 'never'
333 failure-threshold: 'never'
334 unstable-threshold: 'FAILURE'
336 - project: 'yardstick-apex-opnfv-jump-1-daily-{stream}'
339 build-step-failure-threshold: 'never'
340 failure-threshold: 'never'
341 unstable-threshold: 'FAILURE'
343 ########################
345 ########################
352 description: "RPM Artifact name that will be appended to GS_URL to deploy a specific artifact"
354 name: ARTIFACT_VERSION
356 description: "Artifact version type"
358 name: BUILD_DIRECTORY
359 default: $WORKSPACE/build_output
360 description: "Directory where the build artifact will be located upon the completion of the build."
362 name: CACHE_DIRECTORY
363 default: $HOME/opnfv/cache{gs-pathname}
364 description: "Directory where the cache to be used during the build is located."
367 default: https://gerrit.opnfv.org/gerrit/$PROJECT
368 description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
371 default: artifacts.opnfv.org/$PROJECT{gs-pathname}
372 description: "URL to Google Storage."
374 ########################
376 ########################
385 # log info to console
386 echo "Starting the build of Apex using OpenStack Master packages. This will take some time..."
387 echo "---------------------------------------------------------------------------------------"
389 # create the cache directory if it doesn't exist
390 [[ -d $CACHE_DIRECTORY ]] || mkdir -p $CACHE_DIRECTORY
391 # set OPNFV_ARTIFACT_VERSION
392 if echo $GERRIT_BRANCH | grep "brahmaputra" 1> /dev/null; then
393 export OPNFV_ARTIFACT_VERSION="bramaputra.1.rc0"
395 if echo $BUILD_TAG | grep "apex-verify" 1> /dev/null; then
396 export OPNFV_ARTIFACT_VERSION=dev${BUILD_NUMBER}
397 elif [ "$ARTIFACT_VERSION" == "daily" ]; then
398 export OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d")
400 export OPNFV_ARTIFACT_VERSION=${ARTIFACT_VERSION}
405 ./build.sh -v $OPNFV_ARTIFACT_VERSION -c file://$CACHE_DIRECTORY $BUILD_DIRECTORY
406 RPM_VERSION=$(grep Version $BUILD_DIRECTORY/../build/opnfv-apex.spec | awk '{ print $2 }')-$(echo $OPNFV_ARTIFACT_VERSION | tr -d '_-')
407 # list the contents of BUILD_OUTPUT directory
408 ls -al $BUILD_DIRECTORY
409 # save information regarding artifact into file
411 echo "OPNFV_ARTIFACT_VERSION=$OPNFV_ARTIFACT_VERSION"
412 echo "OPNFV_GIT_URL=$(git config --get remote.origin.url)"
413 echo "OPNFV_GIT_SHA1=$(git rev-parse HEAD)"
414 echo "OPNFV_ARTIFACT_URL=$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso"
415 echo "OPNFV_ARTIFACT_MD5SUM=$(md5sum $BUILD_DIRECTORY/OPNFV-CentOS-7-x86_64-$OPNFV_ARTIFACT_VERSION.iso | cut -d' ' -f1)"
416 echo "OPNFV_SRPM_URL=$GS_URL/opnfv-apex-$RPM_VERSION.src.rpm"
417 echo "OPNFV_RPM_URL=$GS_URL/opnfv-apex-$RPM_VERSION.noarch.rpm"
418 echo "OPNFV_RPM_MD5SUM=$(md5sum $BUILD_DIRECTORY/opnfv-apex-$RPM_VERSION.noarch.rpm | cut -d' ' -f1)"
419 echo "OPNFV_BUILD_URL=$BUILD_URL"
420 ) > $WORKSPACE/opnfv.properties
422 echo "--------------------------------------------------------"
425 name: 'apex-workspace-cleanup'
433 # delete everything that is in $WORKSPACE
434 /bin/rm -rf $WORKSPACE
437 name: 'apex-upload-artifact'
445 # log info to console
446 echo "Uploading the Apex artifact. This could take some time..."
447 echo "--------------------------------------------------------"
450 # source the opnfv.properties to get ARTIFACT_VERSION
451 source $WORKSPACE/opnfv.properties
453 # upload artifact and additional files to google storage
454 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
455 gsutil cp $BUILD_DIRECTORY/$(basename $OPNFV_RPM_URL) gs://$GS_URL/$(basename $OPNFV_RPM_URL) > gsutil.iso.log 2>&1
456 gsutil cp $BUILD_DIRECTORY/$(basename $OPNFV_SRPM_URL) gs://$GS_URL/$(basename $OPNFV_SRPM_URL) > gsutil.iso.log 2>&1
457 gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > gsutil.properties.log 2>&1
458 gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/latest.properties > gsutil.latest.log 2>&1
461 echo "--------------------------------------------------------"
463 echo "ISO Artifact is available as http://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso"
464 echo "RPM Artifact is available as http://$GS_URL/$(basename $OPNFV_RPM_URL)"
467 name: 'apex-deploy-virtual'
475 # log info to console
476 echo "Starting the Apex virtual deployment."
477 echo "--------------------------------------------------------"
480 if [[ ! "$ARTIFACT_NAME" == "latest" ]]; then
481 # if artifact name is passed the pull a
482 # specific artifact from artifacts.opnfv.org
483 RPM_INSTALL_PATH=$GS_URL/$ARTIFACT_NAME
485 if [[ -f ${BUILD_DIRECTORY}/../opnfv.properties ]]; then
486 # if opnfv.properties exists then use the
487 # local build. Source the file so we get local OPNFV vars
488 source ${BUILD_DIRECTORY}/../opnfv.properties
489 RPM_INSTALL_PATH=${BUILD_DIRECTORY}/$(basename $OPNFV_RPM_URL)
491 if [[ $BUILD_DIRECTORY == *verify* ]]; then
492 echo "BUILD_DIRECTORY is from a verify job, so will not use latest from URL"
493 echo "Check that the slave has opnfv.properties in $BUILD_DIRECTORY"
496 # no opnfv.properties means use the latest from artifacts.opnfv.org
497 # get the latest.properties to get the link to the latest artifact
498 curl -s -o $WORKSPACE/opnfv.properties http://$GS_URL/latest.properties
499 [[ -f opnfv.properties ]] || exit 1
500 # source the file so we get OPNFV vars
501 source opnfv.properties
502 RPM_INSTALL_PATH=$OPNFV_RPM_URL
506 RPM_LIST=$RPM_INSTALL_PATH
507 for pkg in common undercloud; do
508 RPM_LIST+=" ${RPM_INSTALL_PATH/opnfv-apex/opnfv-apex-${pkg}}"
511 # update / install the new rpm
512 if rpm -q opnfv-apex > /dev/null; then
513 if [ $(basename $OPNFV_RPM_URL) == $(rpm -q opnfv-apex).rpm ]; then
514 echo "RPM is already installed"
515 elif sudo yum update -y $RPM_LIST | grep "does not update installed package"; then
516 if ! sudo yum downgrade -y $RPM_LIST; then
517 sudo yum remove -y opnfv-undercloud opnfv-common
518 sudo yum downgrade -y $RPM_INSTALL_PATH
522 sudo yum install -y $RPM_LIST;
525 # cleanup virtual machines before we start
527 # initiate virtual deployment
528 if [ -e /etc/opnfv-apex/network_settings.yaml ]; then
529 if [ -n "$DEPLOY_SCENARIO" ]; then
530 echo "Deploy Scenario set to ${DEPLOY_SCENARIO}"
531 if [ -e /etc/opnfv-apex/${DEPLOY_SCENARIO}.yaml ]; then
532 sudo opnfv-deploy -v -d /etc/opnfv-apex/${DEPLOY_SCENARIO}.yaml -n /etc/opnfv-apex/network_settings.yaml
534 echo "File does not exist /etc/opnfv-apex/${DEPLOY_SCENARIO}.yaml"
538 echo "Deploy scenario not set!"
544 echo "--------------------------------------------------------"
548 name: 'apex-deploy-baremetal'
556 # log info to console
557 echo "Starting the Apex baremetal deployment."
558 echo "--------------------------------------------------------"
561 if [[ ! "$ARTIFACT_NAME" == "latest" ]]; then
562 # if artifact name is passed the pull a
563 # specific artifact from artifacts.opnfv.org
564 RPM_INSTALL_PATH=$GS_URL/$ARTIFACT_NAME
566 if [[ -f opnfv.properties ]]; then
567 # if opnfv.properties exists then use the
568 # local build. Source the file so we get local OPNFV vars
569 source opnfv.properties
570 RPM_INSTALL_PATH=build_output/$(basename $OPNFV_RPM_URL)
572 # no opnfv.properties means use the latest from artifacts.opnfv.org
573 # get the latest.properties to get the link to the latest artifact
574 curl -s -o $WORKSPACE/opnfv.properties http://$GS_URL/latest.properties
575 [[ -f opnfv.properties ]] || exit 1
576 # source the file so we get OPNFV vars
577 source opnfv.properties
578 RPM_INSTALL_PATH=$OPNFV_RPM_URL
582 source opnfv.properties
583 RPM_INSTALL_PATH=build_output/$(basename $OPNFV_RPM_URL)
584 if [ ! -e "$RPM_INSTALL_PATH" ]; then
585 RPM_INSTALL_PATH=http://${OPNFV_RPM_URL}
588 RPM_LIST=$RPM_INSTALL_PATH
589 for pkg in common undercloud; do
590 RPM_LIST+=" ${RPM_INSTALL_PATH/opnfv-apex/opnfv-apex-${pkg}}"
593 # update / install the new rpm
594 if rpm -q opnfv-apex > /dev/null; then
595 if [ $(basename $OPNFV_RPM_URL) == $(rpm -q opnfv-apex).rpm ]; then
596 echo "RPM is already installed"
597 elif sudo yum update -y $RPM_LIST | grep "does not update installed package"; then
598 if ! sudo yum downgrade -y $RPM_LIST; then
599 sudo yum remove -y opnfv-undercloud opnfv-common
600 sudo yum downgrade -y $RPM_INSTALL_PATH
604 sudo yum install -y $RPM_LIST;
607 # cleanup environment before we start
609 # initiate baremetal deployment
610 if [ -e /etc/opnfv-apex/network_settings.yaml ]; then
611 if [ -n "$DEPLOY_SCENARIO" ]; then
612 echo "Deploy Scenario set to ${DEPLOY_SCENARIO}"
613 if [ -e /etc/opnfv-apex/${DEPLOY_SCENARIO}.yaml ]; then
614 sudo opnfv-deploy -i /root/inventory/pod_settings.yaml \
615 -d /etc/opnfv-apex/${DEPLOY_SCENARIO}.yaml \
616 -n /root/network_settings.yaml
618 echo "File does not exist /etc/opnfv-apex/${DEPLOY_SCENARIO}.yaml"
622 echo "Deploy scenario not set!"
625 echo "File /etc/opnfv-apex/network_settings.yaml does not exist!"
630 echo "--------------------------------------------------------"
633 #######################
635 ########################