4dfa0dee96d11ea6ee0b2785143bc56fe4a49d40
[vfc/nfvo/wfengine.git] / activiti-extension / src / main / docker / activiti-docker-build_image.sh
1 #!/bin/bash
2
3 DIRNAME=`dirname $0`
4 DOCKER_BUILD_DIR=`cd $DIRNAME/; pwd`
5 echo "DOCKER_BUILD_DIR=${DOCKER_BUILD_DIR}"
6 cd ${DOCKER_BUILD_DIR}
7
8 BUILD_ARGS="--no-cache"
9 ORG="onap"
10 # VERSION="1.0.0"
11 DOCKER_VER="1.0.0"
12 VERSION="${DOCKER_VER}-SNAPSHOT"
13 PROJECT="vfc"
14 IMAGE="wfengine-activiti"
15 DOCKER_REPOSITORY="nexus3.onap.org:10003"
16 IMAGE_NAME="${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/${IMAGE}"
17 TIMESTAMP=$(date +"%Y%m%dT%H%M%S")
18
19 if [ -z $NEXUS_REPOS_URL ]; then
20   NEXUS_REPOS_URL="https://nexus.onap.org"
21 fi
22
23 POM_DIR="../../../"
24 cd ${POM_DIR}
25
26 mvncmd=$(whereis mvn | grep ^mvn |awk '{print $2}')
27 if [[ 1$mvncmd != 1 ]]; then
28   echo $mvncmd
29 elif [ $MVN ]; then
30   echo MVN
31   mvncmd=$MVN
32 elif [ $M2_HOME ]; then
33   echo M2_HOME
34   mvncmd=$M2_HOME/bin/mvn
35 elif [ -f "/w/tools/hudson.tasks.Maven_MavenInstallation/mvn33/bin/mvn" ]; then
36   echo /w/tools/hudson.tasks.Maven_MavenInstallation/mvn33/bin/mvn
37   mvncmd="/w/tools/hudson.tasks.Maven_MavenInstallation/mvn33/bin/mvn"
38 elif [ -f "/usr/share/maven/bin/mvn" ]; then
39   mvncmd="/usr/share/maven/bin/mvn"
40 else
41   echo "Maven is not installed, mvncmd=$mvncmd"
42   exit 1
43 fi
44 echo "mvncmd=${mvncmd}"
45
46 pwd
47 #VERSION=$(printf 'VER\t${project.version}\n0'|$mvncmd help:evaluate)
48 #echo "0VERSION=${VERSION}"
49 VERSION=$(printf 'VER\t${project.version}'|$mvncmd help:evaluate|grep '^VER'|cut -f2)
50 echo "VERSION=${VERSION}"
51
52 cd ${DOCKER_BUILD_DIR}
53 if [[ $VERSION != *-SNAPSHOT ]]; then
54   NEXUSREPONAME="releases"
55 else
56   NEXUSREPONAME="snapshots"
57 fi
58 echo "NEXUSREPONAME=${NEXUSREPONAME}"
59
60 if [ $HTTP_PROXY ]; then
61     BUILD_ARGS+=" --build-arg HTTP_PROXY=${HTTP_PROXY}"
62     CURLPROXY="-x ${HTTP_PROXY}"
63 fi
64 if [ $http_proxy ]; then
65     BUILD_ARGS+=" --build-arg HTTP_PROXY=${http_proxy}"
66     CURLPROXY="-x ${http_proxy}"
67 fi
68 if [ $HTTPS_PROXY ]; then
69     BUILD_ARGS+=" --build-arg HTTPS_PROXY=${HTTPS_PROXY}"
70     CURLPROXY="-x ${HTTS_PROXY}"
71 fi
72 if [ $https_proxy ]; then
73     BUILD_ARGS+=" --build-arg HTTPS_PROXY=${https_proxy}"
74     CURLPROXY="-x ${https_proxy}"
75 fi
76 echo "CURLPROXY=${CURLPROXY}"
77
78 rm -Rf activiti-5.2.0/
79 rm -Rf apache-tomcat/
80 rm -Rf temp/
81 rm -Rf build/
82 rm -Rf activiti-extension*.jar
83 rm -Rf activiti-rest.war
84 mkdir build
85 cp -Rf ./Dockerfile ./build
86
87 echo "download Tomcat 8.5.23"
88 #curl "${CURLPROXY}" -m 300 -O -J -L  "${NEXUS_REPOS_URL}/content/repositories/central/org/apache/tomcat/tomcat/8.5.23/tomcat-8.5.23.tar.gz"
89 wget  "${NEXUS_REPOS_URL}/content/repositories/central/org/apache/tomcat/tomcat/8.5.23/tomcat-8.5.23.tar.gz"
90 tar -zxf tomcat-8.5.23.tar.gz
91 mv apache-tomcat-8.5.23 ./build/apache-tomcat
92
93 echo "download Activiti 5.22.0"
94 wget "https://github.com/Activiti/Activiti/releases/download/activiti-5.22.0/activiti-5.22.0.zip"
95 #curl "${CURLPROXY}" -m 600 -O -J -L  "https://github.com/Activiti/Activiti/releases/download/activiti-5.22.0/activiti-5.22.0.zip"
96 rm -Rf ./activiti-5.22.0/
97 #sudo apt-get install p7zip-full
98 #7za x activiti-5.22.0.zip
99
100 #unzip -o -q activiti-5.22.0.zip
101 unzip -o -q activiti-5.22.0.zip "activiti-5.22.0/wars/activiti-rest.war" -d ./
102 mv activiti-5.22.0/wars/activiti-rest.war .
103
104 echo "download activiti-extension ${VERSION}"
105 #curl "${CURLPROXY}" -m 600 -O -J -L  "${NEXUS_REPOS_URL}/service/local/artifact/maven/content?r=${NEXUSREPONAME}&g=org.onap.vfc.nfvo.wfengine&a=activiti-extension&e=jar&v=${VERSION}"
106 #wget -O activiti-extension.jar "${NEXUS_REPOS_URL}/service/local/artifact/maven/content?r=${NEXUSREPONAME}&g=org.onap.vfc.nfvo.wfengine&a=activiti-extension&e=jar&v=${VERSION}"
107 wget -O activiti-extension.jar "${NEXUS_REPOS_URL}/service/local/artifact/maven/content?r=snapshots&g=org.onap.vfc.nfvo.wfengine&a=activiti-extension&e=jar&v=1.0.0-SNAPSHOT"
108 rm -Rf ./temp/
109 mkdir -p ./temp/WEB-INF/lib/
110 cp -f activiti-extension*.jar ./temp/WEB-INF/lib/activiti-extension.jar 
111 cp -f swagger.json ./temp/ 
112
113
114 echo "download jackson-annotations 2.5.1"
115 wget -O jackson-annotations-2.2.3.jar "${NEXUS_REPOS_URL}/service/local/artifact/maven/content?r=central&g=com.fasterxml.jackson.core&a=jackson-annotations&e=jar&v=2.5.1"
116 cp -f jackson-annotations-2.2.3.jar ./temp/WEB-INF/lib/jackson-annotations-2.2.3.jar
117
118 echo "download jackson-core 2.5.1"
119 wget -O jackson-core-2.2.3.jar "${NEXUS_REPOS_URL}/service/local/artifact/maven/redirect?r=central&g=com.fasterxml.jackson.core&a=jackson-core&e=jar&v=2.5.1"
120 cp -f jackson-core-2.2.3.jar ./temp/WEB-INF/lib/jackson-core-2.2.3.jar
121
122 echo "download jackson-databind 2.5.1"
123 wget -O jackson-databind-2.2.3.jar "${NEXUS_REPOS_URL}/service/local/artifact/maven/content?r=central&g=com.fasterxml.jackson.core&a=jackson-databind&e=jar&v=2.5.1"
124 cp -f jackson-databind-2.2.3.jar ./temp/WEB-INF/lib/jackson-databind-2.2.3.jar
125
126 echo "update activiti-rest.war"
127 jarcmd=$(whereis jar | grep ^jar |awk '{print $2}')
128 if [ 1$jarcmd != 1 ]; then
129   echo $jarcmd
130 elif [ $JAVA_HOME ]; then
131   if [ -f "$JAVA_HOME/bin/jar"]; then
132     jarcmd=$JAVA_HOME/bin/jar
133   elif [ -f "$JAVA_HOME/../bin/jar"]; then
134     jarcmd=$JAVA_HOME/../bin/jar
135   else
136     echo "Jar is not installed, JAVA_HOME=$JAVA_HOME"
137     exit 1
138   fi
139 elif [ -f "/usr/lib/jvm/java-8-openjdk-amd64/bin/jar" ]; then
140   jarcmd="/usr/lib/jvm/java-8-openjdk-amd64/bin/jar"
141 elif [ -f "/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/jar" ]; then
142   jarcmd="/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/jar"
143 else
144   echo "Jar is not installed, jarcmd=$jarcmd"
145   exit 1
146 fi
147 echo "jarcmd=${jarcmd}"
148
149 $jarcmd -uvf activiti-rest.war -C ./temp/ ./
150
151 #.  >/dev/null 2>&1  -C ./temp
152 cp activiti-rest.war ./build/apache-tomcat/webapps/
153 cp -Rf bin/* ./build/apache-tomcat/bin
154
155 function build_image {
156     echo "Start build docker image: ${IMAGE_NAME}"
157     docker build ${BUILD_ARGS} -t ${IMAGE_NAME}:latest ./build
158 }
159
160 function push_image_tag {
161     TAG_NAME=$1
162     echo "Start push ${TAG_NAME}"
163     docker tag ${IMAGE_NAME}:latest ${TAG_NAME}
164     docker push ${TAG_NAME}
165 }
166
167 function push_image {
168     echo "Start push ${IMAGE_NAME}:latest"
169     docker push ${IMAGE_NAME}:latest
170     
171     push_image_tag ${IMAGE_NAME}:${DOCKER_VER}-SNAPSHOT-latest
172     push_image_tag ${IMAGE_NAME}:${DOCKER_VER}-STAGING-latest
173     push_image_tag ${IMAGE_NAME}:${DOCKER_VER}-STAGING-${TIMESTAMP}
174 }
175
176 build_image
177 push_image