4 - 'apex-verify-{stream}'
5 - 'apex-merge-{stream}'
6 - 'apex-build-{stream}'
7 - 'apex-deploy-virtual-{stream}'
8 - 'apex-deploy-baremetal-{stream}'
9 - 'apex-daily-{stream}'
11 # stream: branch with - in place of / (eg. stable-arno)
12 # branch: branch (eg. stable/arno)
23 name: 'apex-verify-{stream}'
30 artifactDaysToKeep: -1
35 gs-pathname: '{gs-pathname}'
43 default: ssh://gerrit.opnfv.org:29418/$PROJECT
44 description: "Used for overriding the GIT URL coming from parameters macro."
48 credentials-id: '{ssh-credentials}'
49 refspec: '$GERRIT_REFSPEC'
50 choosing-strategy: 'gerrit'
55 - patchset-created-event:
56 exclude-drafts: 'false'
57 exclude-trivial-rebase: 'false'
58 exclude-no-code-change: 'false'
59 - draft-published-event
60 - comment-added-contains-event:
61 comment-contains-value: 'recheck'
62 - comment-added-contains-event:
63 comment-contains-value: 'reverify'
65 - project-compare-type: 'ANT'
66 project-pattern: 'apex'
68 - branch-compare-type: 'ANT'
69 branch-pattern: '**/master'
76 use-build-blocker: true
82 - 'apex-deploy-virtual'
83 - 'apex-workspace-cleanup'
86 name: 'apex-merge-{stream}'
88 # builder-merge job to run JJB update
90 # This job's purpose is to update all the JJB
98 gs-pathname: '{gs-pathname}'
106 default: ssh://gerrit.opnfv.org:29418/$PROJECT
107 description: "Used for overriding the GIT URL coming from parameters macro."
110 - gerrit-trigger-scm:
111 credentials-id: '{ssh-credentials}'
113 choosing-strategy: 'default'
118 - change-merged-event
119 - comment-added-contains-event:
120 comment-contains-value: 'remerge'
122 - project-compare-type: 'ANT'
123 project-pattern: 'apex'
125 - branch-compare-type: 'ANT'
126 branch-pattern: '**/master'
127 forbidden-file-paths:
133 - 'apex-deploy-virtual'
134 - 'apex-workspace-cleanup'
137 name: 'apex-build-{stream}'
139 # Job template for builds
141 # Required Variables:
142 # stream: branch with - in place of / (eg. stable)
143 # branch: branch (eg. stable)
152 gs-pathname: '{gs-pathname}'
158 default: ssh://gerrit.opnfv.org:29418/$PROJECT
159 description: "Used for overriding the GIT URL coming from parameters macro."
163 credentials-id: '{ssh-credentials}'
169 - 'apex-deploy-virtual'
170 - 'apex-upload-artifact'
171 - 'apex-workspace-cleanup'
174 name: 'apex-deploy-virtual-{stream}'
176 # Job template for virtual deployment
178 # Required Variables:
179 # stream: branch with - in place of / (eg. stable)
180 # branch: branch (eg. stable)
187 credentials-id: '{ssh-credentials}'
195 gs-pathname: '{gs-pathname}'
199 - 'apex-deploy-virtual'
200 - 'apex-workspace-cleanup'
203 name: 'apex-deploy-baremetal-{stream}'
205 # Job template for baremetal deployment
207 # Required Variables:
208 # stream: branch with - in place of / (eg. stable)
209 # branch: branch (eg. stable)
216 credentials-id: '{ssh-credentials}'
224 gs-pathname: '{gs-pathname}'
228 - 'apex-workspace-cleanup'
231 name: 'apex-daily-{stream}'
233 # Job template for daily build
235 # Required Variables:
236 # stream: branch with - in place of / (eg. stable)
237 # branch: branch (eg. stable)
244 credentials-id: '{ssh-credentials}'
252 gs-pathname: '{gs-pathname}'
257 use-build-blocker: true
266 - project: 'apex-build-{stream}'
270 - project: 'apex-deploy-virtual-{stream}'
274 - project: 'apex-deploy-baremetal-{stream}'
276 - project: 'functest-apex-{stream}'
279 build-step-failure-threshold: 'never'
280 failure-threshold: 'never'
281 unstable-threshold: 'FAILURE'
283 ########################
285 ########################
292 description: "RPM Artifact name that will be appended to GS_URL to deploy a specific artifact"
294 name: BUILD_DIRECTORY
295 default: $WORKSPACE/build_output
296 description: "Directory where the build artifact will be located upon the completion of the build."
298 name: CACHE_DIRECTORY
299 default: $HOME/opnfv/cache/{gs-pathname}
300 description: "Directory where the cache to be used during the build is located."
303 default: https://gerrit.opnfv.org/gerrit/$PROJECT
304 description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
307 default: artifacts.opnfv.org/$PROJECT/{gs-pathname}
308 description: "URL to Google Storage."
312 description: "Build Flags"
314 ########################
316 ########################
325 # log info to console
326 echo "Starting the build of Apex using OpenStack Master packages. This will take some time..."
327 echo "---------------------------------------------------------------------------------------"
328 echo "Build flags for this build are ${FLAGS}"
329 echo "---------------------------------------------------------------------------------------"
331 # create the cache directory if it doesn't exist
332 [[ -d $CACHE_DIRECTORY ]] || mkdir -p $CACHE_DIRECTORY
333 # set OPNFV_ARTIFACT_VERSION
334 export OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d_%H-%M-%S")
337 ./build.sh $FLAGS -v $OPNFV_ARTIFACT_VERSION -c file://$CACHE_DIRECTORY $BUILD_DIRECTORY
338 RPM_VERSION=$(grep Version $BUILD_DIRECTORY/../build/opnfv-apex.spec | awk '{ print $2 }')-$(echo $OPNFV_ARTIFACT_VERSION | tr -d '_-')
339 # list the contents of BUILD_OUTPUT directory
340 ls -al $BUILD_DIRECTORY
341 # save information regarding artifact into file
343 echo "OPNFV_ARTIFACT_VERSION=$OPNFV_ARTIFACT_VERSION"
344 echo "OPNFV_GIT_URL=$(git config --get remote.origin.url)"
345 echo "OPNFV_GIT_SHA1=$(git rev-parse HEAD)"
346 echo "OPNFV_ARTIFACT_URL=$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso"
347 echo "OPNFV_ARTIFACT_MD5SUM=$(md5sum $BUILD_DIRECTORY/OPNFV-CentOS-7-x86_64-$OPNFV_ARTIFACT_VERSION.iso | cut -d' ' -f1)"
348 echo "OPNFV_SRPM_URL=$GS_URL/opnfv-apex-$RPM_VERSION.src.rpm"
349 echo "OPNFV_RPM_URL=$GS_URL/opnfv-apex-$RPM_VERSION.noarch.rpm"
350 echo "OPNFV_RPM_MD5SUM=$(md5sum $BUILD_DIRECTORY/opnfv-apex-$RPM_VERSION.noarch.rpm | cut -d' ' -f1)"
351 echo "OPNFV_BUILD_URL=$BUILD_URL"
352 ) > $WORKSPACE/opnfv.properties
354 echo "--------------------------------------------------------"
357 name: 'apex-workspace-cleanup'
365 # delete everything that is in $WORKSPACE
366 /bin/rm -rf $WORKSPACE
369 name: 'apex-upload-artifact'
377 # log info to console
378 echo "Uploading the Apex artifact. This could take some time..."
379 echo "--------------------------------------------------------"
382 # source the opnfv.properties to get ARTIFACT_VERSION
383 source $WORKSPACE/opnfv.properties
385 # upload artifact and additional files to google storage
386 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
387 gsutil cp $BUILD_DIRECTORY/$(basename $OPNFV_RPM_URL) gs://$GS_URL/$(basename $OPNFV_RPM_URL) > gsutil.iso.log 2>&1
388 gsutil cp $BUILD_DIRECTORY/$(basename $OPNFV_SRPM_URL) gs://$GS_URL/$(basename $OPNFV_SRPM_URL) > gsutil.iso.log 2>&1
389 gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > gsutil.properties.log 2>&1
390 gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/latest.properties > gsutil.latest.log 2>&1
393 echo "--------------------------------------------------------"
395 echo "ISO Artifact is available as http://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso"
396 echo "RPM Artifact is available as http://$GS_URL/$(basename $OPNFV_RPM_URL)"
399 name: 'apex-deploy-virtual'
407 # log info to console
408 echo "Starting the Apex virtual deployment."
409 echo "--------------------------------------------------------"
412 if [[ ! "$ARTIFACT_NAME" == "latest" ]]; then
413 # if artifact name is passed the pull a
414 # specific artifact from artifacts.opnfv.org
415 RPM_INSTALL_PATH=$GS_URL/$ARTIFACT_NAME
417 if [[ -f opnfv.properties ]]; then
418 # if opnfv.properties exists then use the
419 # local build. Source the file so we get local OPNFV vars
420 source opnfv.properties
421 RPM_INSTALL_PATH=build_output/$(basename $OPNFV_RPM_URL)
423 # no opnfv.properties means use the latest from artifacts.opnfv.org
424 # get the latest.properties to get the link to the latest artifact
425 curl -s -o $WORKSPACE/opnfv.properties http://$GS_URL/latest.properties
426 [[ -f opnfv.properties ]] || exit 1
427 # source the file so we get OPNFV vars
428 source opnfv.properties
429 RPM_INSTALL_PATH=$RPM_URL
433 source opnfv.properties
434 RPM_INSTALL_PATH=build_output/$(basename $OPNFV_RPM_URL)
436 # update / install the new rpm
437 if rpm -q opnfv-apex > /dev/null; then
438 if sudo yum update -y $RPM_INSTALL_PATH | grep "does not update installed package"; then
439 sudo yum downgrade -y $RPM_INSTALL_PATH;
442 sudo yum install -y $RPM_INSTALL_PATH;
445 # cleanup virtual machines before we start
447 # initiate virtual deployment
451 echo "--------------------------------------------------------"
454 #######################
456 ########################