summaryrefslogtreecommitdiffstats
path: root/jjb/daisy4nfv
diff options
context:
space:
mode:
authorZhijiang Hu <hu.zhijiang@zte.com.cn>2017-10-25 23:56:14 -0400
committerZhijiang Hu <hu.zhijiang@zte.com.cn>2017-10-28 05:10:39 -0400
commit598c2f7deafede33d3d0190632dce4d4ab6de246 (patch)
tree3dce7bc105f58b2a4de7382aefc43711e2952c44 /jjb/daisy4nfv
parentb413226970d1e6193b094c0dbe7870729d0ab7f2 (diff)
[Daisy] Add docker image tarball builder
This PS do: 1. Add docker image tarball builder as a Daisy project job. Name is daisy-kolla-build-.* 2. Upload image to artifact storage after building. 3. Fix new job runs on daisy-virtual. 4. Block jobs with each other which may run Daisy VM because VM has the same name. Change-Id: I148473ca33f1e10490684b7608354a4ba548714f Signed-off-by: Zhijiang Hu <hu.zhijiang@zte.com.cn>
Diffstat (limited to 'jjb/daisy4nfv')
-rw-r--r--jjb/daisy4nfv/daisy-daily-jobs.yml2
-rw-r--r--jjb/daisy4nfv/daisy-project-jobs.yml67
-rwxr-xr-xjjb/daisy4nfv/daisy4nfv-build-kolla-image.sh84
3 files changed, 153 insertions, 0 deletions
diff --git a/jjb/daisy4nfv/daisy-daily-jobs.yml b/jjb/daisy4nfv/daisy-daily-jobs.yml
index b3c37b88f..2f091491c 100644
--- a/jjb/daisy4nfv/daisy-daily-jobs.yml
+++ b/jjb/daisy4nfv/daisy-daily-jobs.yml
@@ -94,6 +94,7 @@
use-build-blocker: true
blocking-jobs:
- 'daisy-daily-.*'
+ - 'daisy-kolla-build-.*'
block-level: 'NODE'
wrappers:
@@ -156,6 +157,7 @@
use-build-blocker: true
blocking-jobs:
- 'daisy.*-deploy-({pod})?-daily-.*'
+ - 'daisy-kolla-build-.*'
block-level: 'NODE'
parameters:
diff --git a/jjb/daisy4nfv/daisy-project-jobs.yml b/jjb/daisy4nfv/daisy-project-jobs.yml
index b6e9526e3..006153f6f 100644
--- a/jjb/daisy4nfv/daisy-project-jobs.yml
+++ b/jjb/daisy4nfv/daisy-project-jobs.yml
@@ -37,6 +37,72 @@
jobs:
- '{installer}-daily-{stream}'
- '{installer}-{phase}-daily-{stream}'
+ - '{installer}-kolla-build-{stream}'
+
+#############################
+# docker build job templates
+#############################
+- job-template:
+ name: '{installer}-kolla-build-{stream}'
+ disabled: false
+ concurrent: true
+
+ properties:
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-total: 4
+ option: 'project'
+ - build-blocker:
+ use-build-blocker: true
+ # Note: Need to block all jobs which may create daisy VM.
+ blocking-jobs:
+ - '{installer}-kolla-build-.*'
+ - 'daisy-deploy-.*'
+ - 'daisy-daily-.*'
+ block-level: 'NODE'
+
+ scm:
+ - git-scm
+
+ triggers:
+ - 'daisy-kolla-build-{stream}-trigger'
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - 'daisy-virtual-defaults'
+ - '{installer}-defaults'
+ - '{installer}-project-parameter':
+ gs-pathname: '{gs-pathname}'
+
+ wrappers:
+ - ssh-agent-wrapper
+ - timeout:
+ timeout: 720
+ fail: true
+
+ builders:
+ - description-setter:
+ description: "Built on $NODE_NAME"
+ - shell:
+ !include-raw-escape: ./daisy4nfv-build-kolla-image.sh
+
+ publishers:
+ - '{installer}-recipients'
+ - email-jenkins-admins-on-failure
+
+- trigger:
+ name: 'daisy-kolla-build-euphrates-trigger'
+ triggers:
+ - timed: '0 0 * * 0'
+
+- trigger:
+ name: 'daisy-kolla-build-master-trigger'
+ triggers:
+ - timed: '0 12 * * 0'
+
########################
# job templates
@@ -60,6 +126,7 @@
use-build-blocker: true
blocking-jobs:
- '{installer}-daily-.*'
+ - '{installer}-kolla-build-.*'
- 'daisy4nfv-merge-build-.*'
- 'daisy4nfv-verify-build-.*'
block-level: 'NODE'
diff --git a/jjb/daisy4nfv/daisy4nfv-build-kolla-image.sh b/jjb/daisy4nfv/daisy4nfv-build-kolla-image.sh
new file mode 100755
index 000000000..d080df553
--- /dev/null
+++ b/jjb/daisy4nfv/daisy4nfv-build-kolla-image.sh
@@ -0,0 +1,84 @@
+#!/bin/bash
+##############################################################################
+# Copyright (c) 2016 ZTE Coreporation and others.
+# hu.zhijiang@zte.com.cn
+# sun.jing22@zte.com.cn
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+
+set -o errexit
+set -o nounset
+set -o pipefail
+
+importkey () {
+ # clone releng repository
+ echo "Cloning releng repository..."
+ [ -d releng ] && rm -rf releng
+ git clone https://gerrit.opnfv.org/gerrit/releng ./releng/ &> /dev/null
+ #this is where we import the siging key
+ if [ -f ./releng/utils/gpg_import_key.sh ]; then
+ source ./releng/utils/gpg_import_key.sh
+ fi
+}
+
+upload_image_to_opnfv () {
+ image=$1
+
+ importkey
+ if gpg2 --list-keys | grep "opnfv-helpdesk@rt.linuxfoundation.org"; then
+ echo "Signing Key avaliable"
+ SIGN_ARTIFACT="true"
+ fi
+
+ if [[ -n "$SIGN_ARTIFACT" && "$SIGN_ARTIFACT" == "true" ]]; then
+ gpg2 -vvv --batch --yes --no-tty \
+ --default-key opnfv-helpdesk@rt.linuxfoundation.org \
+ --passphrase besteffort \
+ --detach-sig $image
+ gsutil cp $image.sig gs://$GS_URL/upstream/$image.sig
+ echo "Image signature upload complete!"
+ fi
+
+ sha512sum -b $image > $image.sha512sum
+ gsutil cp $image.sha512sum gs://$GS_URL/upstream/$image.sha512sum
+
+ echo "Uploading $INSTALLER_TYPE artifact. This could take some time..."
+ echo
+ gsutil cp $image gs://$GS_URL/upstream/$image
+ gsutil -m setmeta \
+ -h "Cache-Control:private, max-age=0, no-transform" \
+ gs://$GS_URL/upstream/$image
+
+ # check if we uploaded the file successfully to see if things are fine
+ gsutil ls gs://$GS_URL/upstream/$image
+ if [[ $? -ne 0 ]]; then
+ echo "Problem while uploading artifact!"
+ exit 1
+ fi
+}
+
+
+
+echo "--------------------------------------------------------"
+echo "This is diasy4nfv kolla image build job!"
+echo "--------------------------------------------------------"
+
+# start the build
+cd $WORKSPACE
+rm -rf docker_build_dir
+mkdir -p docker_build_dir
+
+# -j is for deciding which branch will be used when building,
+# only for OPNFV
+./ci/kolla-build.sh -j $JOB_NAME -w $WORKSPACE/docker_build_dir
+
+image=$(ls $WORKSPACE/docker_build_dir/kolla-build-output/kolla-image-*.tgz)
+upload_image_to_opnfv $image
+
+echo
+echo "--------------------------------------------------------"
+echo "Done!"