1 # this is the job configuration for bgs
12 - 'genesis-{installer}-verify'
13 - 'genesis-{installer}-merge'
14 - 'genesis-{installer}-daily-{stream}'
15 - 'genesis-{installer}-build'
16 - 'genesis-{installer}-deploy'
18 # stream: branch with - in place of / (eg. stable-helium)
19 # branch: branch (eg. stable/helium)
25 ########################
27 ########################
30 name: 'genesis-{installer}-verify'
32 project-type: freestyle
39 artifactDaysToKeep: -1
45 default: '{installer}'
46 description: "Installer to use."
49 default: $WORKSPACE/build_output
52 default: '$HOME/opnfv/cache/genesis-{installer}'
55 default: https://gerrit.opnfv.org/gerrit/genesis
63 credentials-id: '{ssh-credentials}'
64 refspec: '$GERRIT_REFSPEC'
65 choosing-strategy: 'gerrit'
68 - ssh-agent-credentials:
69 user: '{ssh-credentials}'
74 - patchset-created-event:
75 exclude-drafts: 'false'
76 exclude-trivial-rebase: 'false'
77 exclude-no-code-change: 'false'
78 - draft-published-event
79 - comment-added-contains-event:
80 comment-contains-value: 'recheck'
81 - comment-added-contains-event:
82 comment-contains-value: 'reverify'
84 - project-compare-type: 'ANT'
85 project-pattern: 'genesis'
87 - branch-compare-type: 'ANT'
88 branch-pattern: '**/master'
93 pattern: '{installer}/**'
100 name: 'genesis-{installer}-merge'
102 # builder-merge job to run JJB update
104 # This job's purpose is to update all the JJB
106 project-type: freestyle
113 artifactDaysToKeep: -1
119 default: '{installer}'
120 description: "Installer to use."
122 name: BUILD_DIRECTORY
123 default: $WORKSPACE/build_output
125 name: CACHE_DIRECTORY
126 default: '$HOME/opnfv/cache/genesis-{installer}'
129 default: https://gerrit.opnfv.org/gerrit/genesis
136 - gerrit-trigger-scm:
137 credentials-id: '{ssh-credentials}'
139 choosing-strategy: 'default'
142 - ssh-agent-credentials:
143 user: '{ssh-credentials}'
148 - change-merged-event
149 - comment-added-contains-event:
150 comment-contains-value: 'remerge'
152 - project-compare-type: 'ANT'
153 project-pattern: 'genesis'
155 - branch-compare-type: 'ANT'
156 branch-pattern: '**/master'
161 pattern: '{installer}/**'
167 name: 'genesis-{installer}-daily-{stream}'
169 project-type: freestyle
174 - genesis-parameters:
175 installer: '{installer}'
183 refspec: $GERRIT_REFSPEC
186 - pollscm: '@midnight'
191 artifactDaysToKeep: -1
192 artifactNumToKeep: -1
196 - project: 'genesis-{installer}-build'
201 name: 'genesis-{installer}-build'
203 project-type: freestyle
210 artifactDaysToKeep: -1
211 artifactNumToKeep: -1
214 - genesis-parameters:
215 installer: '{installer}'
223 refspec: $GERRIT_REFSPEC
230 name: 'genesis-{installer}-deploy'
232 project-type: freestyle
239 artifactDaysToKeep: -1
240 artifactNumToKeep: -1
245 default: '{installer}'
246 description: "Installer to use."
249 default: https://gerrit.opnfv.org/gerrit/genesis
250 description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
253 default: origin/master
254 description: "Branch to build, deploy and test."
257 default: refs/heads/master
258 description: "Refspec to retrieve."
261 default: 'artifacts.opnfv.org/genesis/{installer}'
262 description: "URL to Google Storage."
264 name: BUILD_DIRECTORY
265 default: $WORKSPACE/build_output
266 description: "Directory where the build artifact will be located upon the completion of the build."
274 refspec: $GERRIT_REFSPEC
279 ########################
281 ########################
283 name: genesis-parameters
287 default: '{installer}'
288 description: "Installer to use."
290 name: BUILD_DIRECTORY
291 default: $WORKSPACE/build_output
292 description: "Directory where the build artifact will be located upon the completion of the build."
294 name: CACHE_DIRECTORY
295 default: '$HOME/opnfv/cache/genesis-{installer}'
296 description: "Directory where the cache to be used during the build is located."
299 default: https://gerrit.opnfv.org/gerrit/genesis
300 description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
303 default: origin/master
304 description: "Branch to build, deploy and test."
307 default: refs/heads/master
308 description: "Refspec to retrieve."
311 default: 'artifacts.opnfv.org/genesis/{installer}'
312 description: "URL to Google Storage."
314 ########################
316 ########################
327 # get the dependencies - temporary fix for RC0
328 [[ -d $WORKSPACE/$INSTALLER/build ]] || mkdir -p $WORKSPACE/$INSTALLER/build
329 cp /home/jenkins/Downloads/opnfv_iso/* $WORKSPACE/$INSTALLER/build/
331 # below lines perhaps need to be enabled in order to fetch images from internet
332 # as we are having disk space issues on ericsson-build slave
333 #wget http://ftp.riken.jp/Linux/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-Minimal.iso
334 #wget http://download.virtualbox.org/virtualbox/rpm/fedora/20/x86_64/VirtualBox-4.3-4.3.26_98988_fedora18-1.x86_64.rpm
335 #wget http://repos.duss-janser.ch/vagrant/vagrant_1.7.2_x86_64.rpm
338 cd $WORKSPACE/$INSTALLER/ci
339 ./build.sh $BUILD_DIRECTORY
341 # list the build artifacts
342 ls -al $BUILD_DIRECTORY
344 # remove the BUILD_DIRECTORY to reclaim some space
345 /bin/rm -rf $BUILD_DIRECTORY
357 # get the dependencies - temporary fix for RC0
358 [[ -d $WORKSPACE/$INSTALLER/build ]] || mkdir -p $WORKSPACE/$INSTALLER/build
359 cp /home/jenkins/Downloads/opnfv_iso/* $WORKSPACE/$INSTALLER/build/
361 # below lines perhaps need to be enabled in order to fetch images from internet
362 # as we are having disk space issues on ericsson-build slave
363 #wget http://ftp.riken.jp/Linux/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-Minimal.iso
364 #wget http://download.virtualbox.org/virtualbox/rpm/fedora/20/x86_64/VirtualBox-4.3-4.3.26_98988_fedora18-1.x86_64.rpm
365 #wget http://repos.duss-janser.ch/vagrant/vagrant_1.7.2_x86_64.rpm
368 cd $WORKSPACE/$INSTALLER/ci
369 ./build.sh $BUILD_DIRECTORY
371 # list the build artifacts
372 ls -al $BUILD_DIRECTORY
374 # remove the BUILD_DIRECTORY to reclaim some space
375 /bin/rm -rf $BUILD_DIRECTORY
387 # log info to console
388 echo "Starting build of $INSTALLER. This could take some time..."
389 echo "--------------------------------------------------------"
392 # create the cache directory if it doesn't exist
393 [[ -d $CACHE_DIRECTORY ]] || mkdir -p $CACHE_DIRECTORY
395 # set OPNFV_ARTIFACT_VERSION
396 export OPNFV_ARTIFACT_VERSION=$(date +"%Y-%m-%d_%H-%M-%S")
399 cd $WORKSPACE/$INSTALLER/ci
400 ./build.sh -v $OPNFV_ARTIFACT_VERSION -c file://$CACHE_DIRECTORY $BUILD_DIRECTORY
402 # save information regarding artifact into file
404 echo "OPNFV_ARTIFACT_VERSION=$OPNFV_ARTIFACT_VERSION"
405 echo "OPNFV_GIT_URL=$(git config --get remote.origin.url)"
406 echo "OPNFV_GIT_SHA1=$(git rev-parse HEAD)"
407 echo "OPNFV_ARTIFACT_URL=$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso"
408 echo "OPNFV_ARTIFACT_MD5SUM=$(md5sum $BUILD_DIRECTORY/OPNFV-CentOS-7-x86_64-$OPNFV_ARTIFACT_VERSION.iso | cut -d' ' -f1)"
409 echo "OPNFV_BUILD_URL=$BUILD_URL"
410 echo "OPNFV_BUILD=OK"
411 ) > $WORKSPACE/opnfv.properties
414 echo "--------------------------------------------------------"
418 name: 'upload-artifact'
427 # log info to console
428 echo "Uploading artifact. This could take some time..."
429 echo "--------------------------------------------------------"
432 # list the build output
433 ls -al $BUILD_DIRECTORY
435 # source the opnfv.properties to get ARTIFACT_VERSION
436 source $WORKSPACE/opnfv.properties
438 # copy artifact property file as latest.properties
439 # so we can directly get info regarding latest artifact
440 /bin/cp -f $WORKSPACE/opnfv.properties $WORKSPACE/latest.properties
442 # upload artifact and additional files to google storage
443 echo "gsutil cp $BUILD_DIRECTORY/OPNFV-CentOS-7-x86_64-$OPNFV_ARTIFACT_VERSION.iso gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso"
444 echo "gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties"
445 echo "gsutil cp $WORKSPACE/latest.properties gs://$GS_URL/latest.properties"
448 echo "--------------------------------------------------------"
462 sudo $WORKSPACE/$INSTALLER/ci/clean.sh -base_config $WORKSPACE/$INSTALLER/ci/inventory/lf_pod2_ksgen_settings.yml
464 # and then initiate deployment
465 sudo $WORKSPACE/$INSTALLER/ci/deploy.sh -base_config $WORKSPACE/$INSTALLER/ci/inventory/lf_pod2_ksgen_settings.yml