#!/bin/bash DIRNAME=`dirname $0` DOCKER_BUILD_DIR=`cd $DIRNAME/; pwd` echo "DOCKER_BUILD_DIR=${DOCKER_BUILD_DIR}" cd ${DOCKER_BUILD_DIR} BUILD_ARGS="--no-cache" ORG="onap" # VERSION="1.0.0" DOCKER_VER="1.2.0" VERSION="${DOCKER_VER}-SNAPSHOT" PROJECT="vfc" IMAGE="wfengine-activiti" DOCKER_REPOSITORY="nexus3.onap.org:10003" IMAGE_NAME="${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/${IMAGE}" TIMESTAMP=$(date +"%Y%m%dT%H%M%S") if [ -z $NEXUS_REPOS_URL ]; then NEXUS_REPOS_URL="https://nexus.onap.org" fi POM_DIR="../../../" cd ${POM_DIR} mvncmd=$(whereis mvn | grep ^mvn |awk '{print $2}') if [[ 1$mvncmd != 1 ]]; then echo $mvncmd elif [ $MVN ]; then echo MVN mvncmd=$MVN elif [ $M2_HOME ]; then echo M2_HOME mvncmd=$M2_HOME/bin/mvn elif [ -f "/w/tools/hudson.tasks.Maven_MavenInstallation/mvn33/bin/mvn" ]; then echo /w/tools/hudson.tasks.Maven_MavenInstallation/mvn33/bin/mvn mvncmd="/w/tools/hudson.tasks.Maven_MavenInstallation/mvn33/bin/mvn" elif [ -f "/usr/share/maven/bin/mvn" ]; then mvncmd="/usr/share/maven/bin/mvn" else echo "Maven is not installed, mvncmd=$mvncmd" exit 1 fi echo "mvncmd=${mvncmd}" pwd #VERSION=$(printf 'VER\t${project.version}\n0'|$mvncmd help:evaluate) #echo "0VERSION=${VERSION}" VERSION=$(printf 'VER\t${project.version}'|$mvncmd help:evaluate|grep '^VER'|cut -f2) echo "VERSION=${VERSION}" DOCKER_VER=${VERSION} cd ${DOCKER_BUILD_DIR} if [[ $VERSION != *-SNAPSHOT ]]; then NEXUSREPONAME="staging" else NEXUSREPONAME="snapshots" fi echo "NEXUSREPONAME=${NEXUSREPONAME}" if [ $HTTP_PROXY ]; then BUILD_ARGS+=" --build-arg HTTP_PROXY=${HTTP_PROXY}" CURLPROXY="-x ${HTTP_PROXY}" fi if [ $http_proxy ]; then BUILD_ARGS+=" --build-arg HTTP_PROXY=${http_proxy}" CURLPROXY="-x ${http_proxy}" fi if [ $HTTPS_PROXY ]; then BUILD_ARGS+=" --build-arg HTTPS_PROXY=${HTTPS_PROXY}" CURLPROXY="-x ${HTTS_PROXY}" fi if [ $https_proxy ]; then BUILD_ARGS+=" --build-arg HTTPS_PROXY=${https_proxy}" CURLPROXY="-x ${https_proxy}" fi echo "CURLPROXY=${CURLPROXY}" rm -Rf activiti-5.2.0/ rm -Rf apache-tomcat/ rm -Rf temp/ rm -Rf build/ rm -Rf activiti-extension*.jar rm -Rf activiti-rest.war mkdir build cp -Rf ./Dockerfile ./build echo "download Tomcat 8.5.23" #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" for i in {1..10}; do wget "${NEXUS_REPOS_URL}/content/repositories/central/org/apache/tomcat/tomcat/8.5.23/tomcat-8.5.23.tar.gz" && break echo sleep $i sleep $i done tar -zxf tomcat-8.5.23.tar.gz mv apache-tomcat-8.5.23 ./build/apache-tomcat echo "download Activiti 5.22.0" for i in {1..10}; do wget "https://github.com/Activiti/Activiti/releases/download/activiti-5.22.0/activiti-5.22.0.zip" && break echo sleep $i sleep $i done #curl "${CURLPROXY}" -m 600 -O -J -L "https://github.com/Activiti/Activiti/releases/download/activiti-5.22.0/activiti-5.22.0.zip" rm -Rf ./activiti-5.22.0/ #sudo apt-get install p7zip-full #7za x activiti-5.22.0.zip #unzip -o -q activiti-5.22.0.zip unzip -o -q activiti-5.22.0.zip "activiti-5.22.0/wars/activiti-rest.war" -d ./ mv activiti-5.22.0/wars/activiti-rest.war . echo "download activiti-extension ${VERSION}" #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}" #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}" #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=${VERSION}-SNAPSHOT" for i in {1..10}; do 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}" && break echo sleep $i sleep $i done rm -Rf ./temp/ mkdir -p ./temp/WEB-INF/lib/ cp -f activiti-extension*.jar ./temp/WEB-INF/lib/activiti-extension.jar cp -f swagger.json ./temp/ echo "download jackson-annotations 2.5.1" for i in {1..10}; do 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" && break echo sleep $i sleep $i done cp -f jackson-annotations-2.2.3.jar ./temp/WEB-INF/lib/jackson-annotations-2.2.3.jar echo "download jackson-core 2.5.1" for i in {1..10}; do 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" && break echo sleep $i sleep $i done cp -f jackson-core-2.2.3.jar ./temp/WEB-INF/lib/jackson-core-2.2.3.jar echo "download jackson-databind 2.5.1" for i in {1..10}; do 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" && break echo sleep $i sleep $i done cp -f jackson-databind-2.2.3.jar ./temp/WEB-INF/lib/jackson-databind-2.2.3.jar echo "update activiti-rest.war" jarcmd=$(whereis jar | grep ^jar |awk '{print $2}') if [ 1$jarcmd != 1 ]; then echo $jarcmd elif [ $JAVA_HOME ]; then if [ -f "$JAVA_HOME/bin/jar"]; then jarcmd=$JAVA_HOME/bin/jar elif [ -f "$JAVA_HOME/../bin/jar"]; then jarcmd=$JAVA_HOME/../bin/jar else echo "Jar is not installed, JAVA_HOME=$JAVA_HOME" exit 1 fi elif [ -f "/usr/lib/jvm/java-8-openjdk-amd64/bin/jar" ]; then jarcmd="/usr/lib/jvm/java-8-openjdk-amd64/bin/jar" elif [ -f "/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/jar" ]; then jarcmd="/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/jar" else echo "Jar is not installed, jarcmd=$jarcmd" exit 1 fi echo "jarcmd=${jarcmd}" $jarcmd -uvf activiti-rest.war -C ./temp/ ./ #. >/dev/null 2>&1 -C ./temp cp activiti-rest.war ./build/apache-tomcat/webapps/ cp -Rf bin/* ./build/apache-tomcat/bin function build_image { echo "Start build docker image: ${IMAGE_NAME}" docker build ${BUILD_ARGS} -t ${IMAGE_NAME}:latest ./build } 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}:${DOCKER_VER}-SNAPSHOT-latest push_image_tag ${IMAGE_NAME}:${DOCKER_VER}-STAGING-latest push_image_tag ${IMAGE_NAME}:${DOCKER_VER}-STAGING-${TIMESTAMP} } build_image push_image