# Version properties
source version.properties
VERSION=$release_version
-STAGING=${release_version}-SNAPSHOT-$(date -u +date -u '+%Y%m%dT%H%M%SZ')
+SNAPSHOT=$snapshot_version
+STAGING=${release_version}-STAGING
+TIMESTAMP=$(date +"%Y%m%dT%H%M%S")Z
+
+BUILD_ARGS="--no-cache"
+if [ $HTTP_PROXY ]; then
+ BUILD_ARGS+=" --build-arg HTTP_PROXY=${HTTP_PROXY}"
+fi
+if [ $HTTPS_PROXY ]; then
+ BUILD_ARGS+=" --build-arg HTTPS_PROXY=${HTTPS_PROXY}"
+fi
function log_ts() { # Log message with timestamp
echo [DEBUG LOG at $(date -u +%Y%m%d:%H%M%S)] "$@"
}
+function get_artifact_version() {
+ log_ts Get Maven Artifact version from pom.xml
+ sudo apt-get install libxml2-utils
+ MVN_ARTIFACT_VERSION=`echo -e "setns x=http://maven.apache.org/POM/4.0.0 \n xpath /x:project/x:version/text() "| xmllint --shell pom.xml | grep content | sed 's/.*content=//'`
+ log_ts Maven artifact version for OSDF 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
- docker build -t ${IMAGE_NAME}:${VERSION} -t ${IMAGE_NAME}:latest .
- log_ts ... Built
+ log_ts Building Image in folder: $PWD with build arguments ${BUILD_ARGS}
+ docker build ${BUILD_ARGS} -t ${IMAGE_NAME}:latest .
+ log_ts ... Built
+}
+
+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
}
function push_image(){
- log_ts Pushing images: ${IMAGE_NAME}:\{$VERSION,$STAGING,latest\}
- docker push ${IMAGE_NAME}:${VERSION}
- docker push ${IMAGE_NAME}:${STAGING}
- docker push ${IMAGE_NAME}:latest
- log_ts ... Pushed images
+ 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
}
(
- cd $(dirname $0)
- build_image
- push_image
+ get_artifact_version
+ # Switch to docker build directory
+ cd $(dirname $0)
+ build_image
+ tag_image
+ push_image
)