From 0f7756ef416ed4248e453bdbcd6a675cd9350c6d Mon Sep 17 00:00:00 2001 From: Rujun Chen Date: Fri, 26 Jun 2026 14:54:58 +0800 Subject: [PATCH 1/3] Only update timeline for Spring Boot 4.x changes --- ...update-spring-cloud-azure-support-file.yml | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/.github/workflows/update-spring-cloud-azure-support-file.yml b/.github/workflows/update-spring-cloud-azure-support-file.yml index 3720f67..c8921f2 100644 --- a/.github/workflows/update-spring-cloud-azure-support-file.yml +++ b/.github/workflows/update-spring-cloud-azure-support-file.yml @@ -87,16 +87,30 @@ jobs: cd azure-sdk-for-java TODAY=$(date +%Y-%m-%d) TIMELINE_FILE=docs/spring/Spring-Cloud-Azure-Timeline.md - # The compatibility tests only run the SUPPORTED versions whose Spring Boot - # major version matches the current one (see compatibility_update_supported_version_matrix_json.py), - # so only list those here. + SUPPORT_FILE=sdk/spring/pipeline/spring-cloud-azure-supported-spring.json + + # Only add a new timeline item when Spring Boot 4.x entries are updated. + OLD_4X=$(git show HEAD:${SUPPORT_FILE} | jq -S '[.[] | select(."spring-boot-version" | startswith("4."))]') + NEW_4X=$(jq -S '[.[] | select(."spring-boot-version" | startswith("4."))]' "${SUPPORT_FILE}") + + if [[ "${OLD_4X}" == "${NEW_4X}" ]]; then + echo "No Spring Boot 4.x changes detected, skip timeline update." + exit 0 + fi + + # List the current SUPPORTED Spring Boot 4.x compatibility test matrix. SUPPORTED_LINES=$(jq -r ' - (map(select(.current == true)) | .[0]["spring-boot-version"] | split(".")[0]) as $major - | .[] + .[] | select(.supportStatus == "SUPPORTED") - | select(.["spring-boot-version"] | startswith($major + ".")) + | select(.["spring-boot-version"] | startswith("4.")) | " - spring-boot-dependencies:\(.["spring-boot-version"]) and spring-cloud-dependencies:\(.["spring-cloud-version"])." - ' sdk/spring/pipeline/spring-cloud-azure-supported-spring.json) + ' "${SUPPORT_FILE}") + + if [[ -z "${SUPPORTED_LINES}" ]]; then + echo "No supported Spring Boot 4.x entries found, skip timeline update." + exit 0 + fi + NEW_ENTRY=$(printf ' - **%s**: In "java - spring - compatibility - tests" pipeline, run unit tests:\n%s' "$TODAY" "$SUPPORTED_LINES") awk -v entry="$NEW_ENTRY" ' { print } From 744b6ce5a0573933d32787c7a97c9f0f4e8b2e64 Mon Sep 17 00:00:00 2001 From: Rujun Chen Date: Fri, 26 Jun 2026 15:02:17 +0800 Subject: [PATCH 2/3] Stabilize 4.x timeline diff detection --- .github/workflows/update-spring-cloud-azure-support-file.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/update-spring-cloud-azure-support-file.yml b/.github/workflows/update-spring-cloud-azure-support-file.yml index c8921f2..b1668b0 100644 --- a/.github/workflows/update-spring-cloud-azure-support-file.yml +++ b/.github/workflows/update-spring-cloud-azure-support-file.yml @@ -90,8 +90,8 @@ jobs: SUPPORT_FILE=sdk/spring/pipeline/spring-cloud-azure-supported-spring.json # Only add a new timeline item when Spring Boot 4.x entries are updated. - OLD_4X=$(git show HEAD:${SUPPORT_FILE} | jq -S '[.[] | select(."spring-boot-version" | startswith("4."))]') - NEW_4X=$(jq -S '[.[] | select(."spring-boot-version" | startswith("4."))]' "${SUPPORT_FILE}") + OLD_4X=$(git show "HEAD:${SUPPORT_FILE}" | jq -Sc '[.[] | select(."spring-boot-version" | startswith("4."))] | sort_by(."spring-boot-version", ."spring-cloud-version", .supportStatus, .current)') + NEW_4X=$(jq -Sc '[.[] | select(."spring-boot-version" | startswith("4."))] | sort_by(."spring-boot-version", ."spring-cloud-version", .supportStatus, .current)' "${SUPPORT_FILE}") if [[ "${OLD_4X}" == "${NEW_4X}" ]]; then echo "No Spring Boot 4.x changes detected, skip timeline update." From 26afd679fc1d960cdd75b65591815135e124051e Mon Sep 17 00:00:00 2001 From: Rujun Chen Date: Fri, 26 Jun 2026 15:06:45 +0800 Subject: [PATCH 3/3] Fix jq sort_by key for 4.x diff detection --- .github/workflows/update-spring-cloud-azure-support-file.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/update-spring-cloud-azure-support-file.yml b/.github/workflows/update-spring-cloud-azure-support-file.yml index b1668b0..e6ba84a 100644 --- a/.github/workflows/update-spring-cloud-azure-support-file.yml +++ b/.github/workflows/update-spring-cloud-azure-support-file.yml @@ -90,8 +90,8 @@ jobs: SUPPORT_FILE=sdk/spring/pipeline/spring-cloud-azure-supported-spring.json # Only add a new timeline item when Spring Boot 4.x entries are updated. - OLD_4X=$(git show "HEAD:${SUPPORT_FILE}" | jq -Sc '[.[] | select(."spring-boot-version" | startswith("4."))] | sort_by(."spring-boot-version", ."spring-cloud-version", .supportStatus, .current)') - NEW_4X=$(jq -Sc '[.[] | select(."spring-boot-version" | startswith("4."))] | sort_by(."spring-boot-version", ."spring-cloud-version", .supportStatus, .current)' "${SUPPORT_FILE}") + OLD_4X=$(git show "HEAD:${SUPPORT_FILE}" | jq -Sc '[.[] | select(."spring-boot-version" | startswith("4."))] | sort_by([."spring-boot-version", ."spring-cloud-version", .supportStatus, .current])') + NEW_4X=$(jq -Sc '[.[] | select(."spring-boot-version" | startswith("4."))] | sort_by([."spring-boot-version", ."spring-cloud-version", .supportStatus, .current])' "${SUPPORT_FILE}") if [[ "${OLD_4X}" == "${NEW_4X}" ]]; then echo "No Spring Boot 4.x changes detected, skip timeline update."