Let user determine how the container is built 84/284/1
authorre2429 <re2429@att.com>
Tue, 2 Oct 2018 14:24:09 +0000 (10:24 -0400)
committerre2429 <re2429@att.com>
Tue, 2 Oct 2018 14:28:20 +0000 (10:28 -0400)
Change-Id: I84f4e9a0830f3282c48b586cc6353e2adcea9fdb
Signed-off-by: re2429 <re2429@att.com>
jjb/shell/build-docker.sh

index 7656d28..b5041d3 100644 (file)
@@ -20,64 +20,74 @@ set -e -u -x -o pipefail
 
 echo '---> Starting build-docker'
 
-case "$PROJECT" in
-portal_user_interface)
-    CON_NAME='akraino-portal'
-    VERSION=`xmlstarlet sel -N "x=http://maven.apache.org/POM/4.0.0" -t -v "/x:project/x:version" AECPortalMgmt/pom.xml`
-
-    XMLFILE="${NEXUS_URL}/service/local/repositories/snapshots/content/org/akraino/${PROJECT}/${VERSION}/maven-metadata.xml"
-    curl -O "${XMLFILE}"
-    V2=`grep value maven-metadata.xml | sed -e 's;</value>;;' -e 's;.*<value>;;' | uniq`
-    WARFILE="${NEXUS_URL}/service/local/repositories/snapshots/content/org/akraino/${PROJECT}/${VERSION}/${PROJECT}-${V2}.war"
-    curl -O "${WARFILE}"
-
-    ln $(basename ${WARFILE}) AECPortalMgmt.war
-    (
-        echo 'FROM tomcat:8.5.31'
-        echo 'COPY AECPortalMgmt.war /usr/local/tomcat/webapps'
-    ) > Dockerfile
-    ;;
-
-camunda_workflow)
-    CON_NAME='akraino-camunda-workflow-engine'
-    VERSION=`xmlstarlet sel -N "x=http://maven.apache.org/POM/4.0.0" -t -v "/x:project/x:version" akraino/pom.xml`
-
-    XMLFILE="${NEXUS_URL}/service/local/repositories/snapshots/content/org/akraino/${PROJECT}/${VERSION}/maven-metadata.xml"
-    curl -O "${XMLFILE}"
-    V2=`grep value maven-metadata.xml | sed -e 's;</value>;;' -e 's;.*<value>;;' | uniq`
-    JARFILE="${NEXUS_URL}/service/local/repositories/snapshots/content/org/akraino/${PROJECT}/${VERSION}/${PROJECT}-${V2}.jar"
-    curl -O ${JARFILE}
-    ;;
-
-postgres_db_schema)
-    CON_NAME='akraino_schema_db'
-    source $WORKSPACE/version.properties
-
-    # Note: for some reason the project name is in the path twice for tar files
-    XMLFILE="${NEXUS_URL}/service/local/repositories/snapshots/content/org/akraino/yaml_builds/yaml_builds/${VERSION}/maven-metadata.xml"
-    curl -O "${XMLFILE}"
-    V2=`grep value maven-metadata.xml | sed -e 's;</value>;;' -e 's;.*<value>;;' | uniq`
-    TGZFILE="${NEXUS_URL}/service/local/repositories/snapshots/content/org/akraino/yaml_builds/yaml_builds/${VERSION}/yaml_builds-${V2}.tgz"
-    curl -O "${TGZFILE}"
-    (mkdir yaml_builds; cd yaml_builds; tar xfv ../$(basename ${TGZFILE}))
-    mv yaml_builds/templates akraino-j2templates
-    ;;
-
-*)
-    echo unknown project "$PROJECT"
-    exit 1
-    ;;
-esac
-
-# Append stream, if it is not the master stream
-if [ "${STREAM}" != "master" ]
+if [ -f Dockerfile -a -x build-container.sh ]
 then
-    VERSION="${VERSION}-${STREAM}"
-fi
 
-# Build and push the Docker container
-docker build -f Dockerfile -t ${CON_NAME}:${VERSION} .
-docker tag ${CON_NAME}:${VERSION} ${DOCKER_REPO}/${CON_NAME}:${VERSION}
-docker push ${DOCKER_REPO}/${CON_NAME}:${VERSION}
+    # Let the project owner determine how the container is built.
+    bash ./build-container.sh
+
+else
+
+    case "$PROJECT" in
+    portal_user_interface)
+        CON_NAME='akraino-portal'
+        VERSION=`xmlstarlet sel -N "x=http://maven.apache.org/POM/4.0.0" -t -v "/x:project/x:version" AECPortalMgmt/pom.xml`
+
+        XMLFILE="${NEXUS_URL}/service/local/repositories/snapshots/content/org/akraino/${PROJECT}/${VERSION}/maven-metadata.xml"
+        curl -O "${XMLFILE}"
+        V2=`grep value maven-metadata.xml | sed -e 's;</value>;;' -e 's;.*<value>;;' | uniq`
+        WARFILE="${NEXUS_URL}/service/local/repositories/snapshots/content/org/akraino/${PROJECT}/${VERSION}/${PROJECT}-${V2}.war"
+        curl -O "${WARFILE}"
+
+        ln $(basename ${WARFILE}) AECPortalMgmt.war
+        (
+            echo 'FROM tomcat:8.5.31'
+            echo 'COPY AECPortalMgmt.war /usr/local/tomcat/webapps'
+        ) > Dockerfile
+        ;;
+
+    camunda_workflow)
+        CON_NAME='akraino-camunda-workflow-engine'
+        VERSION=`xmlstarlet sel -N "x=http://maven.apache.org/POM/4.0.0" -t -v "/x:project/x:version" akraino/pom.xml`
+
+        XMLFILE="${NEXUS_URL}/service/local/repositories/snapshots/content/org/akraino/${PROJECT}/${VERSION}/maven-metadata.xml"
+        curl -O "${XMLFILE}"
+        V2=`grep value maven-metadata.xml | sed -e 's;</value>;;' -e 's;.*<value>;;' | uniq`
+        JARFILE="${NEXUS_URL}/service/local/repositories/snapshots/content/org/akraino/${PROJECT}/${VERSION}/${PROJECT}-${V2}.jar"
+        curl -O ${JARFILE}
+        ;;
+
+    postgres_db_schema)
+        CON_NAME='akraino_schema_db'
+        source $WORKSPACE/version.properties
+
+        # Note: for some reason the project name is in the path twice for tar files
+        XMLFILE="${NEXUS_URL}/service/local/repositories/snapshots/content/org/akraino/yaml_builds/yaml_builds/${VERSION}/maven-metadata.xml"
+        curl -O "${XMLFILE}"
+        V2=`grep value maven-metadata.xml | sed -e 's;</value>;;' -e 's;.*<value>;;' | uniq`
+        TGZFILE="${NEXUS_URL}/service/local/repositories/snapshots/content/org/akraino/yaml_builds/yaml_builds/${VERSION}/yaml_builds-${V2}.tgz"
+        curl -O "${TGZFILE}"
+        (mkdir yaml_builds; cd yaml_builds; tar xfv ../$(basename ${TGZFILE}))
+        mv yaml_builds/templates akraino-j2templates
+        ;;
+
+    *)
+        echo unknown project "$PROJECT"
+        exit 1
+        ;;
+    esac
+
+    # Append stream, if it is not the master stream
+    if [ "${STREAM}" != "master" ]
+    then
+        VERSION="${VERSION}-${STREAM}"
+    fi
+
+    # Build and push the Docker container
+    docker build -f Dockerfile -t ${CON_NAME}:${VERSION} .
+    docker tag ${CON_NAME}:${VERSION} ${DOCKER_REPO}/${CON_NAME}:${VERSION}
+    docker push ${DOCKER_REPO}/${CON_NAME}:${VERSION}
+
+fi
 
 set +u +x