summaryrefslogtreecommitdiffstats
path: root/jjb/releng/opnfv-docker.sh
diff options
context:
space:
mode:
authorTrevor Bramwell <tbramwell@linuxfoundation.org>2016-11-09 12:33:46 -0800
committerTrevor Bramwell <tbramwell@linuxfoundation.org>2016-11-29 16:03:08 -0800
commit754eee3e1294c1381ecc802b1217895bcfab360f (patch)
tree6a77f910856c93cd29b172f8f4e22af81948ef2d /jjb/releng/opnfv-docker.sh
parent58e754eb9afa05c9bb6c90da1f1a6882b3e866cd (diff)
Rearrange Releng Job and Parameter Files
Individual project jobs can now be tested using: jenkins-jobs test -r jjb/global:jjb/$project - Rename '.yaml' files to '.yml' so they get checked by the verify-releng.sh script, and update the script to include checking of '.yaml' files. - Move parameter and macro files under new 'global' directory. Change-Id: I6b74f5d8af2bced3256a7f4a33983df5310511a2 Signed-off-by: Trevor Bramwell <tbramwell@linuxfoundation.org>
Diffstat (limited to 'jjb/releng/opnfv-docker.sh')
-rw-r--r--jjb/releng/opnfv-docker.sh92
1 files changed, 92 insertions, 0 deletions
diff --git a/jjb/releng/opnfv-docker.sh b/jjb/releng/opnfv-docker.sh
new file mode 100644
index 000000000..e0fbb7564
--- /dev/null
+++ b/jjb/releng/opnfv-docker.sh
@@ -0,0 +1,92 @@
+#!/bin/bash
+# SPDX-license-identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2016 Ericsson AB and others.
+# 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
+
+
+echo "Starting opnfv-docker for $DOCKER_REPO_NAME ..."
+echo "--------------------------------------------------------"
+echo
+
+
+if [[ -n $(ps -ef|grep 'docker build'|grep -v grep) ]]; then
+ echo "There is already another build process in progress:"
+ echo $(ps -ef|grep 'docker build'|grep -v grep)
+ # Abort this job since it will collide and might mess up the current one.
+ echo "Aborting..."
+ exit 1
+fi
+
+# Remove previous running containers if exist
+if [[ -n "$(docker ps -a | grep $DOCKER_REPO_NAME)" ]]; then
+ echo "Removing existing $DOCKER_REPO_NAME containers..."
+ docker ps -a | grep $DOCKER_REPO_NAME | awk '{print $1}' | xargs docker rm -f
+ t=60
+ # Wait max 60 sec for containers to be removed
+ while [[ $t -gt 0 ]] && [[ -n "$(docker ps| grep $DOCKER_REPO_NAME)" ]]; do
+ sleep 1
+ let t=t-1
+ done
+fi
+
+
+# Remove existing images if exist
+if [[ -n "$(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
+ if [[ -n "$(docker images|grep $DOCKER_REPO_NAME|grep $tag)" ]]; then
+ echo "Removing docker image $DOCKER_REPO_NAME:$tag..."
+ docker rmi -f $DOCKER_REPO_NAME:$tag
+ fi
+ done
+fi
+
+
+# cd to directory where Dockerfile is located
+cd $WORKSPACE/docker
+if [ ! -f ./Dockerfile ]; then
+ echo "ERROR: Dockerfile not found."
+ exit 1
+fi
+
+# Get tag version
+branch="${GIT_BRANCH##origin/}"
+echo "Current branch: $branch"
+
+if [[ "$branch" == "master" ]]; then
+ DOCKER_TAG="latest"
+else
+ DOCKER_TAG="stable"
+fi
+
+# Start the build
+echo "Building docker image: $DOCKER_REPO_NAME:$DOCKER_TAG"
+echo "--------------------------------------------------------"
+echo
+cmd="docker build --no-cache -t $DOCKER_REPO_NAME:$DOCKER_TAG --build-arg BRANCH=$branch ."
+
+echo ${cmd}
+${cmd}
+
+
+# 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
+ docker push $DOCKER_REPO_NAME:$DOCKER_TAG
+fi