summaryrefslogtreecommitdiffstats
path: root/nokiav2/deployment/src/main/resources/build_image.sh
blob: 1f78999dd34fe06b0f2a6ab2a8897487ac9e098a (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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/bin/bash
#
# Copyright 2017, Nokia Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

if [ "a$1" != "abuildDocker" ] ; then
  echo "Skipping building Docker image"
  echo "If you would like to build the docker image by script execute $0 buildDocker" 
  echo "If you would like to build and push the docker image by script execute $0 buildDocker pushImage" 
  echo "If you would like to build the docker image by maven execute mvn package -Dexec.args=\"buildDocker\"" 
  echo "If you would like to push the docker image by maven execute mvn package -Dexec.args=\"buildDocker pushImage\""
  exit
fi 

DIRNAME=`dirname $0`
DOCKER_BUILD_DIR=`cd $DIRNAME/; pwd`
echo "----- Build directory ${DOCKER_BUILD_DIR}"
cd ${DOCKER_BUILD_DIR}

#VERSION=`xmlstarlet sel -t -v "/_:project/_:version" ../../../pom.xml | sed 's/-SNAPSHOT//g'`
VERSION="1.1.0-SNAPSHOT"
echo "------ Detected version: $VERSION"

PROJECT="vfc"
IMAGE="nfvo/svnfm/nokiav2"
DOCKER_REPOSITORY="nexus3.onap.org:10003"
ORG="onap"
BUILD_ARGS="--no-cache"
# it looks like that ONAP jenkins does not support squash
#BUILD_ARGS="--no-cache --squash"

IMAGE_NAME="${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/${IMAGE}"
TIMESTAMP=$(date +"%Y%m%dT%H%M%S")

if [ $HTTP_PROXY ]; then
    echo "----- Using HTTP proxy ${HTTP_PROXY}"
    BUILD_ARGS+=" --build-arg HTTP_PROXY=${HTTP_PROXY}"
fi

if [ $HTTPS_PROXY ]; then
    echo "----- Using HTTPS proxy ${HTTPS_PROXY}"
    BUILD_ARGS+=" --build-arg HTTPS_PROXY=${HTTPS_PROXY}"
fi

function build_image {
    echo "Start build docker image: ${IMAGE_NAME}"
    echo "docker build --build-arg VERSION=${VERSION} ${BUILD_ARGS} -t ${IMAGE_NAME}:latest ."
    docker build --build-arg VERSION=${VERSION} ${BUILD_ARGS} -t ${IMAGE_NAME}:latest .
}

function push_image_tag {
    TAG_NAME=$1
    echo "Start push ${TAG_NAME}"
    docker tag ${IMAGE_NAME}:latest ${TAG_NAME}
    docker push ${TAG_NAME}
}

function push_image {
    echo "Start push ${IMAGE_NAME}:latest"
    docker push ${IMAGE_NAME}:latest
    
    push_image_tag ${IMAGE_NAME}:${VERSION}-SNAPSHOT-latest
    push_image_tag ${IMAGE_NAME}:${VERSION}-STAGING-latest
    push_image_tag ${IMAGE_NAME}:${VERSION}-STAGING-${TIMESTAMP}
}

build_image

if [ "a$2" != "apushImage" ]; then
   echo "Skipping image pushing"
   echo "If you would like to push the docker image by maven execute mvn package -Dexec.args=\"buildDocker pushImage\""
else
   echo "Pushing image"
   push_image
fi