3 # Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
9 # http://www.apache.org/licenses/LICENSE-2.0
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
17 DOCKER_REPO='nexus3.akraino.org:10003'
18 STAGING_BUILD=${STAGING_BUILD:=''}
19 AUTOSTAGING=${AUTOSTAGING:=''}
21 set -e -u -x -o pipefail
23 echo '---> Starting build-docker'
25 if [ -f Dockerfile -a -x build-container.sh ]
28 # Let the project owner determine how the container is built.
29 bash ./build-container.sh
34 portal_user_interface)
35 CON_NAME='akraino-portal'
36 if [ -n "$STAGING_BUILD" -a -n "$AUTOSTAGING" ]
38 # For a staging build, the $VERSION is fixed
39 VERSION=`xmlstarlet sel -N "x=http://maven.apache.org/POM/4.0.0" -t -v "/x:project/x:version" AECPortalMgmt/pom.xml`
40 VERSION=$(echo "$VERSION" | sed 's/-SNAPSHOT//')
41 WARFILE="${NEXUS_URL}/content/repositories/autostaging-${AUTOSTAGING}/org/akraino/${PROJECT}/${VERSION}/${PROJECT}-${VERSION}.war"
42 DOCKER_REPO='nexus3.akraino.org:10004'
45 # For a snapshot build - find the latest snapshot
46 VERSION=`xmlstarlet sel -N "x=http://maven.apache.org/POM/4.0.0" -t -v "/x:project/x:version" AECPortalMgmt/pom.xml`
47 XMLFILE="${NEXUS_URL}/service/local/repositories/snapshots/content/org/akraino/${PROJECT}/${VERSION}/maven-metadata.xml"
49 V2=`grep value maven-metadata.xml | sed -e 's;</value>;;' -e 's;.*<value>;;' | uniq`
50 WARFILE="${NEXUS_URL}/service/local/repositories/snapshots/content/org/akraino/${PROJECT}/${VERSION}/${PROJECT}-${V2}.war"
54 ln $(basename ${WARFILE}) AECPortalMgmt.war
56 echo 'FROM tomcat:8.5.31'
57 echo 'COPY AECPortalMgmt.war /usr/local/tomcat/webapps'
62 CON_NAME='akraino-camunda-workflow-engine'
63 if [ -n "$STAGING_BUILD" -a -n "$AUTOSTAGING" ]
65 # For a staging build, the $VERSION is fixed
66 VERSION=`xmlstarlet sel -N "x=http://maven.apache.org/POM/4.0.0" -t -v "/x:project/x:version" akraino/pom.xml`
67 VERSION=$(echo "$VERSION" | sed 's/-SNAPSHOT//')
68 JARFILE="${NEXUS_URL}/content/repositories/autostaging-${AUTOSTAGING}/org/akraino/${PROJECT}/${VERSION}/${PROJECT}-${VERSION}.jar"
69 DOCKER_REPO='nexus3.akraino.org:10004'
72 # For a snapshot build - find the latest snapshot
73 VERSION=`xmlstarlet sel -N "x=http://maven.apache.org/POM/4.0.0" -t -v "/x:project/x:version" akraino/pom.xml`
74 XMLFILE="${NEXUS_URL}/service/local/repositories/snapshots/content/org/akraino/${PROJECT}/${VERSION}/maven-metadata.xml"
76 V2=`grep value maven-metadata.xml | sed -e 's;</value>;;' -e 's;.*<value>;;' | uniq`
77 JARFILE="${NEXUS_URL}/service/local/repositories/snapshots/content/org/akraino/${PROJECT}/${VERSION}/${PROJECT}-${V2}.jar"
83 CON_NAME='akraino_schema_db'
84 # Unfortunatly, there is another apt running in the background at this point, so this apt will always fail.
85 # E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
86 # Since it probably is not needed, I am just removing it.
87 # sudo apt install -y dos2unix
88 # dos2unix "${WORKSPACE}/version.properties"
89 source "$WORKSPACE/version.properties"
91 if [ -n "$STAGING_BUILD" -a -n "$AUTOSTAGING" ]
93 # For a staging build, the $VERSION is fixed
94 # Note: yaml_builds version MUST match the postgres_db_schema version
95 VERSION=$(echo "$VERSION" | sed 's/-SNAPSHOT//')
96 TGZFILE="${NEXUS_URL}/content/repositories/autostaging-${AUTOSTAGING}/yaml_builds-${VERSION}.tgz"
97 DOCKER_REPO='nexus3.akraino.org:10004'
100 # For a snapshot build - find the latest snapshot
101 # Note: for some reason the project name is in the path twice for tar files
102 XMLFILE="${NEXUS_URL}/service/local/repositories/snapshots/content/org/akraino/yaml_builds/yaml_builds/${VERSION}/maven-metadata.xml"
104 V2=`grep value maven-metadata.xml | sed -e 's;</value>;;' -e 's;.*<value>;;' | uniq`
105 TGZFILE="${NEXUS_URL}/service/local/repositories/snapshots/content/org/akraino/yaml_builds/yaml_builds/${VERSION}/yaml_builds-${V2}.tgz"
108 (mkdir yaml_builds; cd yaml_builds; tar xfv ../$(basename ${TGZFILE}))
109 mv yaml_builds/templates akraino-j2templates
113 echo unknown project "$PROJECT"
118 # Append stream, if it is not the master stream
119 if [ "${STREAM}" != "master" ]
121 VERSION="${VERSION}-${STREAM}"
124 # Build and push the Docker container
125 docker build -f Dockerfile -t ${CON_NAME}:${VERSION} .
126 docker tag ${CON_NAME}:${VERSION} ${DOCKER_REPO}/${CON_NAME}:${VERSION}
127 docker push ${DOCKER_REPO}/${CON_NAME}:${VERSION}