summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjose.lausuch <jose.lausuch@ericsson.com>2015-11-27 13:19:24 +0000
committerGerrit Code Review <gerrit@172.30.200.206>2015-11-27 13:19:24 +0000
commit875ef9816810ee2f1119528ca18f881d76497d2f (patch)
treec900e46e9531a87df910cfdd3e1ad5fb1a2577ba
parente0d76f879b5ae0927b6312ae51bf53485e538ee2 (diff)
parent7c7f2f0bc299c31a1fe5ffe3271b44439c80a65d (diff)
Merge "Create generic jenkins job to build and push a docker image"
-rw-r--r--jjb/functest/functest-docker.sh71
-rw-r--r--jjb/opnfv/opnfv-docker.sh93
-rw-r--r--jjb/opnfv/opnfv-docker.yml (renamed from jjb/functest/functest-docker.yml)60
3 files changed, 124 insertions, 100 deletions
diff --git a/jjb/functest/functest-docker.sh b/jjb/functest/functest-docker.sh
deleted file mode 100644
index c73bcf99a..000000000
--- a/jjb/functest/functest-docker.sh
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/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
-cd $WORKSPACE
-git clone https://gerrit.opnfv.org/gerrit/releng
-
-DOCKER_TAG=$($WORKSPACE/releng/utils/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 if exist
-if [[ ! -z $(docker ps -a | grep $DOCKER_IMAGE_NAME) ]]; then
- echo "Removing existing $DOCKER_IMAGE_NAME containers..."
- docker ps | grep $DOCKER_IMAGE_NAME | awk '{{print $1}}' | xargs docker stop
- docker ps -a | grep $DOCKER_IMAGE_NAME | awk '{{print $1}}' | xargs docker rm
-fi
-
-
-# Remove existing images if exist
-if [[ ! -z $(docker images | grep $DOCKER_IMAGE_NAME) ]]; then
- echo "Docker images to remove:"
- docker images | head -1 && docker images | grep $DOCKER_IMAGE_NAME
- image_tags=($(docker images | grep $DOCKER_IMAGE_NAME | awk '{{print $2}}'))
- for tag in "${{image_tags[@]}}"; do
- echo "Removing docker image $DOCKER_IMAGE_NAME:$tag..."
- docker rmi $DOCKER_IMAGE_NAME:$tag
- done
-fi
-
-
-# Start the build
-echo "Building docker image: $DOCKER_IMAGE_NAME:$DOCKER_TAG..."
-cd $WORKSPACE/docker
-docker build -t $DOCKER_IMAGE_NAME:$DOCKER_TAG .
-echo "Creating tag 'latest'..."
-docker tag $DOCKER_IMAGE_NAME:$DOCKER_TAG $DOCKER_IMAGE_NAME:latest
-
-# 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
-
- echo "Updating $DOCKER_IMAGE_NAME:latest to the docker registry..."
- docker push $DOCKER_IMAGE_NAME:latest
-fi
diff --git a/jjb/opnfv/opnfv-docker.sh b/jjb/opnfv/opnfv-docker.sh
new file mode 100644
index 000000000..030144457
--- /dev/null
+++ b/jjb/opnfv/opnfv-docker.sh
@@ -0,0 +1,93 @@
+#!/bin/bash
+set -o errexit
+set -o nounset
+set -o pipefail
+
+
+echo "Starting opnfv-docker for $DOCKER_REPO_NAME ..."
+echo "--------------------------------------------------------"
+echo
+
+
+# Remove previous running containers if exist
+if [[ ! -z $(docker ps -a | grep $DOCKER_REPO_NAME) ]]; then
+ echo "Removing existing $DOCKER_REPO_NAME containers..."
+ docker ps | grep $DOCKER_REPO_NAME | awk '{{print $1}}' | xargs docker stop
+ docker ps -a | grep $DOCKER_REPO_NAME | awk '{{print $1}}' | xargs docker rm
+fi
+
+
+# Remove existing images if exist
+if [[ ! -z $(docker images | grep $DOCKER_REPO_NAME) ]]; then
+ echo "Docker images to remove:"
+ docker images | head -1 && docker images | grep $DOCKER_REPO_NAME
+ image_tags=($(docker images | grep $DOCKER_REPO_NAME | awk '{{print $2}}'))
+ for tag in "${{image_tags[@]}}"; do
+ echo "Removing docker image $DOCKER_REPO_NAME:$tag..."
+ docker rmi $DOCKER_REPO_NAME:$tag
+ done
+fi
+
+# If we just want to update the latest_stable image
+if [[ [ "$UPDATE_LATEST_STABLE" == "true" ] ]]; then
+ echo "Pulling $DOCKER_REPO_NAME:$STABLE_TAG ..."
+ docker pull $DOCKER_REPO_NAME:$STABLE_TAG
+ if [[ $? -ne 0 ]]; then
+ echo "ERROR: The image $DOCKER_REPO_NAME with tag $STABLE_TAG does not exist."
+ exit 1
+ fi
+ docker tag $DOCKER_REPO_NAME:$STABLE_TAG $DOCKER_REPO_NAME:latest_stable
+ echo "Pushing $DOCKER_REPO_NAME:latest_stable ..."
+ docker push $DOCKER_REPO_NAME:latest_stable
+ exit 0
+fi
+
+
+# Get tag version
+cd $WORKSPACE
+git clone https://gerrit.opnfv.org/gerrit/releng
+
+DOCKER_TAG=$($WORKSPACE/releng/utils/calculate_version.sh -t docker \
+ -n $DOCKER_REPO_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
+
+
+# cd to directory where Dockerfile is located
+if [[ "$DOCKER_REPO_NAME" == "opnfv/functest" ]]; then
+ cd $WORKSPACE/docker
+elif [[ "$DOCKER_REPO_NAME" == "opnfv/yardstick" ]]; then
+ cd $WORKSPACE/ci/docker/yardstick-ci
+else
+ echo "ERROR: DOCKER_REPO_NAME parameter not valid: $DOCKER_REPO_NAME"
+ exit 1
+fi
+
+# Start the build
+echo "Building docker image: $DOCKER_REPO_NAME:$DOCKER_TAG..."
+
+docker build -t $DOCKER_REPO_NAME:$DOCKER_TAG .
+echo "Creating tag 'latest'..."
+docker tag $DOCKER_REPO_NAME:$DOCKER_TAG $DOCKER_REPO_NAME:latest
+
+# list the images
+echo "Available images are:"
+docker images
+
+# Push image to Dockerhub
+if [ "$PUSH_IMAGE" == "true" ]; then
+ echo "Pushing $DOCKER_REPO_NAME:$DOCKER_TAG to the docker registry..."
+ echo "--------------------------------------------------------"
+ echo
+ # Push to the Dockerhub repository
+ docker push $DOCKER_REPO_NAME:$DOCKER_TAG
+
+ echo "Updating $DOCKER_REPO_NAME:latest to the docker registry..."
+ docker push $DOCKER_REPO_NAME:latest
+fi \ No newline at end of file
diff --git a/jjb/functest/functest-docker.yml b/jjb/opnfv/opnfv-docker.yml
index ee5adc6f7..dfff050a9 100644
--- a/jjb/functest/functest-docker.yml
+++ b/jjb/opnfv/opnfv-docker.yml
@@ -1,15 +1,17 @@
##############################################
-# job configuration for functest docker build
+# job configuration for docker build and push
##############################################
- project:
- name: functest-docker
+ name: opnfv-docker
- project: 'functest'
+ project:
+ - 'functest'
+ - 'yardstick'
jobs:
- - 'functest-docker-build-push-{stream}'
+ - '{project}-docker-build-push-{stream}'
stream:
- master:
@@ -18,9 +20,8 @@
########################
# job templates
########################
-
- job-template:
- name: 'functest-docker-build-push-{stream}'
+ name: '{project}-docker-build-push-{stream}'
project-type: freestyle
@@ -31,8 +32,29 @@
parameters:
- project-parameter:
project: '{project}'
- - functest-docker-parameter
-
+ - 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."
+ - string:
+ name: DOCKER_REPO_NAME
+ default: "opnfv/{project}"
+ description: "Dockerhub repo to be pushed to."
+ - string:
+ name: UPDATE_LATEST_STABLE
+ default: "false"
+ description: "This will update the latest_stable image only."
+ - string:
+ name: STABLE_TAG
+ description: "If above option is true, this is the tag to be pulled."
scm:
- git-scm:
@@ -48,27 +70,7 @@
builders:
- shell:
- !include-raw ./functest-docker.sh
+ !include-raw ./opnfv-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."