From 24072bed96d0d2a8b2029df35156404dc3976a72 Mon Sep 17 00:00:00 2001 From: dreis2211 Date: Thu, 25 Jun 2020 15:26:41 +0200 Subject: [PATCH] Improve error handling in JDK upgrade checks See gh-22110 --- ci/scripts/detect-jdk-updates.sh | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/ci/scripts/detect-jdk-updates.sh b/ci/scripts/detect-jdk-updates.sh index cbc8b476c8..36485a5bfe 100755 --- a/ci/scripts/detect-jdk-updates.sh +++ b/ci/scripts/detect-jdk-updates.sh @@ -1,5 +1,12 @@ #!/bin/bash +report_error() { + echo "Script exited with error $1 on line $2" + exit 1; +} + +trap 'report_error $? $LINENO' ERR + case "$JDK_VERSION" in java8) BASE_URL="https://api.adoptopenjdk.net/v3/assets/feature_releases/8" @@ -16,6 +23,10 @@ esac response=$( curl -s ${BASE_URL}\/ga\?architecture\=x64\&heap_size\=normal\&image_type\=jdk\&jvm_impl\=hotspot\&os\=linux\&sort_order\=DESC\&vendor\=adoptopenjdk ) latest=$( jq -r '.[0].binaries[0].package.link' <<< "$response" ) +if [[ ${latest} = "null" || ${latest} = "" ]]; then + echo "Could not parse JDK response: $response" + exit 1; +fi current=$( git-repo/ci/images/get-jdk-url.sh ${JDK_VERSION} ) @@ -24,9 +35,16 @@ if [[ $current = $latest ]]; then exit 0; fi -milestone_number=$( curl -s https://api.github.com/repos/${GITHUB_ORGANIZATION}/${GITHUB_REPO}/milestones\?state\=open | jq -c --arg MILESTONE "$MILESTONE" '.[] | select(.title==$MILESTONE)' | jq -r '.number') +milestone_response=$( curl -s https://api.github.com/repos/${GITHUB_ORGANIZATION}/${GITHUB_REPO}/milestones\?state\=open ) +milestone_result=$( jq -r -c --arg MILESTONE "$MILESTONE" '.[] | select(has("title")) | select(.title==$MILESTONE)' <<< "$milestone_response" ) +if [[ ${milestone_result} = "null" || ${milestone_result} = "" ]]; then + echo "Could not parse milestone: $milestone_response" + exit 1; +fi + +milestone_number=$( jq -r '.number' <<< "$milestone_result" ) existing_tasks=$( curl -s https://api.github.com/repos/${GITHUB_ORGANIZATION}/${GITHUB_REPO}/issues\?labels\=type:%20task\&state\=open\&creator\=spring-buildmaster\&milestone\=${milestone_number} ) -existing_jdk_issues=$( echo "$existing_tasks" | jq -c --arg TITLE "$ISSUE_TITLE" '.[] | select(.title==$TITLE)' ) +existing_jdk_issues=$( jq -r -c --arg TITLE "$ISSUE_TITLE" '.[] | select(has("title")) | select(.title==$TITLE)' <<< "$existing_tasks" ) if [[ ${existing_jdk_issues} = "" ]]; then curl \