summaryrefslogtreecommitdiffstats
path: root/build-dockers.sh
diff options
context:
space:
mode:
authorDileep Ranganathan <dileep.ranganathan@intel.com>2018-07-23 07:16:25 -0700
committerDileep Ranganathan <dileep.ranganathan@intel.com>2018-07-25 17:00:18 -0700
commitabeb634c05d63739e27d05534e5c03cefffd8504 (patch)
treefb6105e6521f36b7b6620321164231adf1eebf60 /build-dockers.sh
parenta337408acfa590f540742d780be12619f8c1694b (diff)
Fix Docker image to use the nexus artifacts
Fixed Docker image to use the nexus artifacts instead of building from source. Added proxy support. Updated the Docker image version for Casablanca. Change-Id: I42de44b5c09992822696b1e12344ac6fde51373d Issue-ID: OPTFRA-301 Signed-off-by: Dileep Ranganathan <dileep.ranganathan@intel.com>
Diffstat (limited to 'build-dockers.sh')
-rwxr-xr-xbuild-dockers.sh78
1 files changed, 59 insertions, 19 deletions
diff --git a/build-dockers.sh b/build-dockers.sh
index b531542..f2b3561 100755
--- a/build-dockers.sh
+++ b/build-dockers.sh
@@ -1,36 +1,76 @@
#!/bin/bash
+
+# The script starts in the root folder of the repo, which has the following outline
+# We fetch the version information from version.properties, build docker files and
+# do a docker push. Since the job will be run under Jenkins, it will have the Nexus
+# credentials
+
+set -e
+
BUILD_ARGS="--no-cache"
ORG="onap"
-VERSION="1.1.1"
-STAGING="1.1.1-STAGING"
PROJECT="optf-has"
DOCKER_REPOSITORY="nexus3.onap.org:10003"
IMAGE_NAME="${DOCKER_REPOSITORY}/${ORG}/${PROJECT}"
-TIMESTAMP=$(date +"%Y%m%dT%H%M%S")
-
+
+# Version properties
+source version.properties
+VERSION=$release_version
+SNAPSHOT=$snapshot_version
+STAGING=${release_version}-STAGING
+TIMESTAMP=$(date +"%Y%m%dT%H%M%S")Z
+
if [ $HTTP_PROXY ]; then
-BUILD_ARGS+=" --build-arg HTTP_PROXY=${HTTP_PROXY}"
+ BUILD_ARGS+=" --build-arg HTTP_PROXY=${HTTP_PROXY}"
fi
if [ $HTTPS_PROXY ]; then
BUILD_ARGS+=" --build-arg HTTPS_PROXY=${HTTPS_PROXY}"
fi
-
-function build_image(){
- echo Building Image
- docker build -t ${IMAGE_NAME}:${VERSION} -t ${IMAGE_NAME}:latest -t ${IMAGE_NAME}:${STAGING} conductor/docker
- echo ... Built
+
+function log_ts() { # Log message with timestamp
+ echo [DEBUG LOG at $(date -u +%Y%m%d:%H%M%S)] "$@"
}
-function push_image(){
- echo Pushing image starts.
- build_image
+function get_artifact_version() {
+ log_ts Get Maven Artifact version from pom.xml
+ MVN_ARTIFACT_VERSION=`echo -e "setns x=http://maven.apache.org/POM/4.0.0 \n xpath /x:project/x:version/text() "| xmllint --shell conductor/pom.xml | grep content | sed 's/.*content=//'`
+ log_ts Maven artifact version for HAS is $MVN_ARTIFACT_VERSION
+ if [[ "$MVN_ARTIFACT_VERSION" =~ SNAPSHOT ]]; then
+ log_ts "REPO is snapshots";
+ REPO=snapshots
+ else
+ log_ts "REPO is releases";
+ REPO=releases
+ fi
+ BUILD_ARGS+=" --build-arg REPO=${REPO}"
+ BUILD_ARGS+=" --build-arg MVN_ARTIFACT_VERSION=${MVN_ARTIFACT_VERSION}"
+}
+
+function build_image() {
+ log_ts Building Image in folder: $PWD with build arguments ${BUILD_ARGS}
+ docker build ${BUILD_ARGS} -t ${IMAGE_NAME}:latest conductor/docker
+ log_ts ... Built
+}
- docker push ${IMAGE_NAME}:${VERSION}
- docker push ${IMAGE_NAME}:latest
- docker push ${IMAGE_NAME}:STAGING
+function tag_image() {
+ log_ts Tagging images: ${IMAGE_NAME}:\{$SNAPSHOT-${TIMESTAMP},$STAGING-${TIMESTAMP},latest\}
+ docker tag ${IMAGE_NAME}:latest ${IMAGE_NAME}:${SNAPSHOT}-${TIMESTAMP}
+ docker tag ${IMAGE_NAME}:latest ${IMAGE_NAME}:${STAGING}-${TIMESTAMP}
+ docker tag ${IMAGE_NAME}:latest ${IMAGE_NAME}:latest
+ log_ts ... Tagged images
+}
- echo ... Pushed $1
+function push_image(){
+ log_ts Pushing images: ${IMAGE_NAME}:\{$SNAPSHOT-${TIMESTAMP},$STAGING-${TIMESTAMP},latest\}
+ docker push ${IMAGE_NAME}:${SNAPSHOT}-${TIMESTAMP}
+ docker push ${IMAGE_NAME}:${STAGING}-${TIMESTAMP}
+ docker push ${IMAGE_NAME}:latest
+ log_ts ... Pushed images
}
-push_image
-
+(
+ get_artifact_version
+ build_image
+ tag_image
+ push_image
+) \ No newline at end of file