From e2ee686780b7a06799e3597b39b041560aca84fc Mon Sep 17 00:00:00 2001 From: "jose.lausuch" Date: Mon, 19 Oct 2015 16:01:31 +0200 Subject: [PATCH] Add daily jjob to build and push functest docker JIRA: FUNCTEST-78 Change-Id: I4b50f3ddfc7f97d5d56de08afd065ae88e3eec4c Signed-off-by: jose.lausuch --- jjb/functest/functest-docker.sh | 50 +++++++++++++++++++++++++++ jjb/functest/functest-docker.yml | 74 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 124 insertions(+) create mode 100644 jjb/functest/functest-docker.sh create mode 100644 jjb/functest/functest-docker.yml diff --git a/jjb/functest/functest-docker.sh b/jjb/functest/functest-docker.sh new file mode 100644 index 000000000..8dcfad799 --- /dev/null +++ b/jjb/functest/functest-docker.sh @@ -0,0 +1,50 @@ +#!/bin/bash +set -o errexit +set -o nounset +set -o pipefail + + +echo "Starting the build of Functest Docker." +echo "--------------------------------------------------------" +echo + +DOCKER_IMAGE_NAME="opnfv/functest" + +# Get tag version +DOCKER_TAG=$(../../calculate_version.sh -t docker -n $DOCKER_IMAGE_NAME) + +ret_val=$? +if [ $ret_val -ne 0 ]; then + echo "Error retrieving the version tag." + exit 1 +else + echo "Tag version to be build and pushed: $DOCKER_TAG" +fi + +# Remove previous running containers +echo "Removing existing $DOCKER_IMAGE_NAME containers..." +docker ps | grep $DOCKER_IMAGE_NAME | awk '{{print $1}}' | xargs docker stop &>/dev/null +docker ps -a | grep $DOCKER_IMAGE_NAME | awk '{{print $1}}' | xargs docker rm &>/dev/null + +# Remove existing images +echo "Removing existing $DOCKER_IMAGE_NAME images..." +docker images | grep $DOCKER_IMAGE_NAME | awk '{{print $3}}' | xargs docker rmi &>/dev/null + + +# Start the build +echo "Starting image build of $DOCKER_IMAGE_NAME:$DOCKER_TAG..." +cd $WORKSPACE/docker/ +docker build -t $DOCKER_IMAGE_NAME:$DOCKER_TAG . + +# list the images +echo "Available images are:" +docker images + + +if [ "$PUSH_IMAGE" == "true" ]; then + echo "Pushing $DOCKER_IMAGE_NAME:$DOCKER_TAG to the docker registry..." + echo "--------------------------------------------------------" + echo + # Push to the Dockerhub repository + docker push $DOCKER_IMAGE_NAME:$DOCKER_TAG +fi diff --git a/jjb/functest/functest-docker.yml b/jjb/functest/functest-docker.yml new file mode 100644 index 000000000..ee5adc6f7 --- /dev/null +++ b/jjb/functest/functest-docker.yml @@ -0,0 +1,74 @@ +############################################## +# job configuration for functest docker build +############################################## + +- project: + + name: functest-docker + + project: 'functest' + + jobs: + - 'functest-docker-build-push-{stream}' + + stream: + - master: + branch: 'master' + +######################## +# job templates +######################## + +- job-template: + name: 'functest-docker-build-push-{stream}' + + project-type: freestyle + + node: ericsson-build + + disabled: false + + parameters: + - project-parameter: + project: '{project}' + - functest-docker-parameter + + + scm: + - git-scm: + credentials-id: '{ssh-credentials}' + refspec: '' + branch: '{branch}' + + logrotate: + daysToKeep: '{build-days-to-keep}' + numToKeep: '{build-num-to-keep}' + artifactDaysToKeep: '{build-artifact-days-to-keep}' + artifactNumToKeep: '{build-artifact-num-to-keep}' + + builders: + - shell: + !include-raw ./functest-docker.sh + + triggers: + - pollscm: "*/30 * * * *" + + +######################## +# parameter macros +######################## +- parameter: + name: functest-docker-parameter + parameters: + - string: + name: GIT_BASE + default: "https://gerrit.opnfv.org/gerrit/$PROJECT" + description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW." + - string: + name: PUSH_IMAGE + default: "true" + description: "To enable/disable pushing the image to Dockerhub." + - string: + name: BASE_VERSION + default: "brahmaputra.0" + description: "Base version to be used." -- 2.16.6