54315cad135b0c2f89733dae82a2f193f186ef1d
[releng.git] / jjb / functest / functest-docker.sh
1 #!/bin/bash
2 set -o errexit
3 set -o nounset
4 set -o pipefail
5
6
7 echo "Starting the build of Functest Docker."
8 echo "--------------------------------------------------------"
9 echo
10
11 DOCKER_IMAGE_NAME="opnfv/functest"
12
13
14 # Get tag version
15 cd $WORKSPACE
16 git clone https://gerrit.opnfv.org/gerrit/releng
17
18 DOCKER_TAG=$($WORKSPACE/releng/utils/calculate_version.sh -t docker \
19     -n $DOCKER_IMAGE_NAME)
20
21 ret_val=$?
22 if [ $ret_val -ne 0 ]; then
23     echo "Error retrieving the version tag."
24     exit 1
25 else
26     echo "Tag version to be build and pushed: $DOCKER_TAG"
27 fi
28
29 # Remove previous running containers if exist
30 if [[ ! -z $(docker ps -a | grep $DOCKER_IMAGE_NAME) ]]; then
31     echo "Removing existing $DOCKER_IMAGE_NAME containers..."
32     docker ps | grep $DOCKER_IMAGE_NAME | awk '{{print $1}}' | xargs docker stop
33     docker ps -a | grep $DOCKER_IMAGE_NAME | awk '{{print $1}}' | xargs docker rm
34 fi
35
36 # list the images
37 echo "Available images are:"
38 docker images
39
40 # Remove existing images if exist
41 if [[ ! -z $(docker images | grep $DOCKER_IMAGE_NAME) ]]; then
42     echo "Removing existing $DOCKER_IMAGE_NAME images..."
43     docker images | grep $DOCKER_IMAGE_NAME | awk '{{print $3}}' \
44         | xargs docker rmi -f
45 fi
46
47
48 # Start the build
49 echo "Building of $DOCKER_IMAGE_NAME:$DOCKER_TAG..."
50 cd $WORKSPACE/docker
51 docker build -t $DOCKER_IMAGE_NAME:$DOCKER_TAG .
52 echo "Creating tag 'latest'..."
53 docker tag $DOCKER_IMAGE_NAME:$DOCKER_TAG $DOCKER_IMAGE_NAME:latest
54
55 # list the images
56 echo "Available images are:"
57 docker images
58
59
60 if [ "$PUSH_IMAGE" == "true" ]; then
61     echo "Pushing $DOCKER_IMAGE_NAME:$DOCKER_TAG to the docker registry..."
62     echo "--------------------------------------------------------"
63     echo
64     # Push to the Dockerhub repository
65     docker push $DOCKER_IMAGE_NAME:$DOCKER_TAG
66
67     echo "Updating $DOCKER_IMAGE_NAME:latest to the docker registry..."
68     docker push $DOCKER_IMAGE_NAME:latest
69 fi