summaryrefslogtreecommitdiffstats
path: root/jjb/functest/functest-docker.sh
blob: c73bcf99ad09f1a3ae5fcbe1e4edaf0190d89b45 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/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