aboutsummaryrefslogtreecommitdiffstats
path: root/docker/build_image.sh
diff options
context:
space:
mode:
Diffstat (limited to 'docker/build_image.sh')
-rwxr-xr-xdocker/build_image.sh58
1 files changed, 47 insertions, 11 deletions
diff --git a/docker/build_image.sh b/docker/build_image.sh
index c723a4f..d5e153b 100755
--- a/docker/build_image.sh
+++ b/docker/build_image.sh
@@ -25,28 +25,64 @@ IMAGE_NAME=$DOCKER_REPOSITORY/$ORG/$PROJECT
# Version properties
source version.properties
VERSION=$release_version
+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
+ 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 -t ${IMAGE_NAME}:${STAGING} .
- 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
)