summaryrefslogtreecommitdiffstats
path: root/mvn-phase-script.sh
diff options
context:
space:
mode:
Diffstat (limited to 'mvn-phase-script.sh')
-rwxr-xr-xmvn-phase-script.sh47
1 files changed, 42 insertions, 5 deletions
diff --git a/mvn-phase-script.sh b/mvn-phase-script.sh
index a4d52d9..78da207 100755
--- a/mvn-phase-script.sh
+++ b/mvn-phase-script.sh
@@ -22,45 +22,82 @@
echo "running script: [$0] for module [$1] at stage [$2]"
echo "=> Prepare environment "
-#env
+env
-TIMESTAMP=$(date +%C%y%m%dT%H%M%S)
+# This is the base for where "deploy" will upload
+# MVN_NEXUSPROXY is set in the pom.xml
+REPO=$MVN_NEXUSPROXY/content/sites/raw/$MVN_PROJECT_GROUPID
+
+TIMESTAMP=$(date +%C%y%m%dT%H%M%S)
export BUILD_NUMBER="${TIMESTAMP}"
-# expected environment variables
+# expected environment variables
if [ -z "${MVN_NEXUSPROXY}" ]; then
echo "MVN_NEXUSPROXY environment variable not set. Cannot proceed"
exit
fi
MVN_NEXUSPROXY_HOST=$(echo "$MVN_NEXUSPROXY" |cut -f3 -d'/' | cut -f1 -d':')
-echo "=> Nexu Proxy at $MVN_NEXUSPROXY_HOST, $MVN_NEXUSPROXY"
+echo "=> Nexus Proxy at $MVN_NEXUSPROXY_HOST, $MVN_NEXUSPROXY"
# use the version text detect which phase we are in in LF CICD process: verify, merge, or (daily) release
-# mvn phase in life cycle
+# mvn phase in life cycle
MVN_PHASE="$2"
+shift 2
case $MVN_PHASE in
clean)
echo "==> clean phase script"
+ if [ -f makefile -o -f Makefile ];then make clean; else :; fi
;;
generate-sources)
echo "==> generate-sources phase script"
+ if [ -f makefile -o -f Makefile ];then make generate-sources; else :; fi
;;
compile)
echo "==> compile phase script"
+ if [ -f makefile -o -f Makefile ];then make compile; else :; fi
;;
test)
echo "==> test phase script"
+ if [ -f makefile -o -f Makefile ];then make test; else :; fi
;;
package)
echo "==> package phase script"
+ if [ -f makefile -o -f Makefile ];then make package; else :; fi
;;
install)
echo "==> install phase script"
+ if [ -f makefile -o -f Makefile ];then make install; else :; fi
;;
deploy)
echo "==> deploy phase script"
+ if [ -f makefile -o -f Makefile ];then make deploy
+ else
+ # Upload all files (listed as additional deployment arguments) to Nexus
+ set -e -x
+ function setnetrc {
+ # Turn off -x so won't leak the credentials
+ set +x
+ hostport=$(echo $1 | cut -f3 -d /)
+ host=$(echo $hostport | cut -f1 -d:)
+ settings=${SETTINGS_FILE:-$HOME/.m2/settings.xml}
+ echo machine $host login $(xpath -q -e "//servers/server[id='$MVN_SERVER_ID']/username/text()" $settings) password $(xpath -q -e "//servers/server[id='$MVN_SERVER_ID']/password/text()" $settings) >$HOME/.netrc
+ chmod 600 $HOME/.netrc
+ set -x
+ }
+ function putraw {
+ curl -X PUT -H "Content-Type: $3" --netrc --upload-file $1 --url $REPO/$2
+ }
+ setnetrc $REPO
+
+ # additional
+ for artifact
+ do
+ putraw $artifact artifacts/$artifact application/data
+ done
+ set +e +x
+ fi
;;
*)
echo "==> unprocessed phase"