From 467f2f6a1ae04f60ca62ac0a77f43a7d428a3f26 Mon Sep 17 00:00:00 2001 From: LamGC Date: Fri, 9 Jan 2026 02:16:34 +0000 Subject: [PATCH] Prevent "null" versions in update check. --- update-version.sh | 39 +++++++++++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/update-version.sh b/update-version.sh index 5e0f7e6..57af44c 100644 --- a/update-version.sh +++ b/update-version.sh @@ -1,12 +1,39 @@ #!/bin/bash -LATEST_VERSION=$(curl -s https://api.github.com/repos/jenkinsci/docker-agent/releases/latest | jq -r '.tag_name') -CURL_EXIT_CODE=$? -if [ $CURL_EXIT_CODE -ne 0 ] || [ -z "$LATEST_VERSION" ]; then - echo "Failed to retrieve the latest version" +TEMP_JSON=$(mktemp) +trap 'rm -f "$TEMP_JSON"' EXIT +API_URL="https://api.github.com/repos/jenkinsci/docker-agent/releases/latest" + +HTTP_CODE=$(curl -s -o "$TEMP_JSON" -w "%{http_code}" "$API_URL") +if [ $? -ne 0 ]; then + echo "Error: Network request failed." exit 1 fi -if [ "$LATEST_VERSION" != "$(cat LATEST_VERSION)" ]; then +if [ "$HTTP_CODE" != "200" ]; then + echo "Error: API returned HTTP $HTTP_CODE" + if [ -s "$TEMP_JSON" ]; then + echo "Response body:" + cat "$TEMP_JSON" + fi + exit 1 +fi + +LATEST_VERSION=$(jq -r '.tag_name // empty' "$TEMP_JSON") +if [ -z "$LATEST_VERSION" ] || [ "$LATEST_VERSION" == "null" ]; then + echo "Error: Failed to extract tag_name from response." + exit 1 +fi + +if [ -f LATEST_VERSION ]; then + CURRENT_VERSION=$(cat LATEST_VERSION) +else + CURRENT_VERSION="" +fi + +if [ "$LATEST_VERSION" != "$CURRENT_VERSION" ]; then + echo "New version found: $LATEST_VERSION (Old: $CURRENT_VERSION)" echo "$LATEST_VERSION" > LATEST_VERSION -fi \ No newline at end of file +else + echo "Already at latest version: $LATEST_VERSION" +fi