From ad6bd3d20148474280aa37718de557dda95de75b Mon Sep 17 00:00:00 2001 From: Thanh Ha Date: Wed, 6 Jun 2018 16:57:55 -0400 Subject: [PATCH] Handle missing CREDENTIAL when creating .netrc Move the `set -eu -o pipefail` to after CREDENTIAL is set so that we can properly error handle. Otherwise the script will exit too soon. Change-Id: I58edd3deb5b928a9ebaa4e00f6ed83d652e62d70 Signed-off-by: Thanh Ha --- shell/create-netrc.sh | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/shell/create-netrc.sh b/shell/create-netrc.sh index 50a419c9..a123be8d 100644 --- a/shell/create-netrc.sh +++ b/shell/create-netrc.sh @@ -10,23 +10,29 @@ ############################################################################## echo "---> create-netrc.sh" -# Ensure we fail the job if any steps fail. -set -eu -o pipefail - -ALT_NEXUS_URL="${ALT_NEXUS_URL:-}" - -if [ -z "$ALT_NEXUS_URL" ] -then +if [ -z "$ALT_NEXUS_URL" ]; then NEXUS_URL="${NEXUSPROXY:-$NEXUS_URL}" else NEXUS_URL="${ALT_NEXUS_URL}" fi - CREDENTIAL=$(xmlstarlet sel -N "x=http://maven.apache.org/SETTINGS/1.0.0" \ -t -m "/x:settings/x:servers/x:server[x:id='${SERVER_ID}']" \ -v x:username -o ":" -v x:password \ "$SETTINGS_FILE") +# Ensure we fail the job if any steps fail. +set -eu -o pipefail + +# Handle when a project chooses to not archive logs to a log server +# in other cases if CREDENTIAL is not found then fail the build. +if [ -z "$CREDENTIAL" ] && [ "$SERVER_ID" == "logs" ]; then + echo "WARN: Log server credential not found." + exit 0 +elif [ -z "$CREDENTIAL" ]; then + echo "ERROR: Credential not found." + exit 1 +fi + machine=$(echo "$NEXUS_URL" | awk -F/ '{print $3}') user=$(echo "$CREDENTIAL" | cut -f1 -d:) pass=$(echo "$CREDENTIAL" | cut -f2 -d:) -- 2.16.6