From 2874ef1c7ae695da8c08ffe6a2ccd45923de5591 Mon Sep 17 00:00:00 2001 From: sayaliM0412 Date: Tue, 30 Sep 2025 15:30:13 -0500 Subject: [PATCH 1/2] fix: update WEB_URL construction for SDKMAN package distribution --- .github/workflows/package.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml index 82cd38dd..8db7f979 100644 --- a/.github/workflows/package.yml +++ b/.github/workflows/package.yml @@ -478,7 +478,7 @@ jobs: SDKMAN_CONSUMER_KEY: ${{ env.SDKMAN_CONSUMER_KEY }} SDKMAN_CONSUMER_TOKEN: ${{ env.SDKMAN_CONSUMER_TOKEN }} VERSION: ${{ inputs.version }} - WEB_URL: ${{ inputs.distribution == 'liquibase-secure' && 'https://package.liquibase.com/downloads/sdkman/secure/' || 'https://package.liquibase.com/downloads/sdkman/oss/' }} + WEB_URL: ${{ inputs.distribution == 'liquibase-secure' && 'https://package.liquibase.com/downloads/secure/sdkman/' || 'https://package.liquibase.com/downloads/oss/sdkman/' }} S3_BUCKET: ${{ inputs.distribution == 'liquibase-secure' && 's3://repo.liquibase.com/sdkman/secure/' || 's3://repo.liquibase.com/sdkman/oss/' }} run: | # Download the appropriate zip file based on distribution @@ -506,7 +506,7 @@ jobs: -H "Consumer-Token: $SDKMAN_CONSUMER_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ - -d '{"candidate": "'"$SDKMAN_CANDIDATE"'", "version": "'"$VERSION"'", "url": "'"$WEB_URL"'/'"$ZIP_FILENAME"'"}' \ + -d '{"candidate": "'"$SDKMAN_CANDIDATE"'", "version": "'"$VERSION"'", "url": "'"$WEB_URL$ZIP_FILENAME"'"}' \ https://vendors.sdkman.io/release echo "Sent $ZIP_FILENAME to SDKMAN" # Set the default version for SDKMAN From 6a1583566a0f3bab6c794236ce927bea128daf44 Mon Sep 17 00:00:00 2001 From: sayaliM0412 Date: Tue, 30 Sep 2025 15:39:14 -0500 Subject: [PATCH 2/2] fix: remove continue-on-error flag and add error handling for SDKMAN release steps --- .github/workflows/package.yml | 39 ++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml index 8db7f979..1afa8849 100644 --- a/.github/workflows/package.yml +++ b/.github/workflows/package.yml @@ -473,7 +473,6 @@ jobs: - name: Update SDKMAN version for ${{ inputs.artifactId }} if: ${{ inputs.dry_run == false }} - continue-on-error: true env: SDKMAN_CONSUMER_KEY: ${{ env.SDKMAN_CONSUMER_KEY }} SDKMAN_CONSUMER_TOKEN: ${{ env.SDKMAN_CONSUMER_TOKEN }} @@ -481,6 +480,8 @@ jobs: WEB_URL: ${{ inputs.distribution == 'liquibase-secure' && 'https://package.liquibase.com/downloads/secure/sdkman/' || 'https://package.liquibase.com/downloads/oss/sdkman/' }} S3_BUCKET: ${{ inputs.distribution == 'liquibase-secure' && 's3://repo.liquibase.com/sdkman/secure/' || 's3://repo.liquibase.com/sdkman/oss/' }} run: | + set -e # Exit on any error + # Download the appropriate zip file based on distribution if [ "${{ inputs.distribution }}" = "liquibase-secure" ]; then wget -q -O liquibase-secure-$VERSION.zip ${{ inputs.download_base_url }}/$VERSION/liquibase-secure-$VERSION.zip @@ -500,32 +501,56 @@ jobs: # Upload the release to S3 aws s3 cp $ZIP_FILENAME $S3_BUCKET echo "Uploaded $ZIP_FILENAME to s3" + # Send the release to SDKMAN - curl -s -X POST \ + RESPONSE=$(curl -s -w "\n%{http_code}" -X POST \ -H "Consumer-Key: $SDKMAN_CONSUMER_KEY" \ -H "Consumer-Token: $SDKMAN_CONSUMER_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"candidate": "'"$SDKMAN_CANDIDATE"'", "version": "'"$VERSION"'", "url": "'"$WEB_URL$ZIP_FILENAME"'"}' \ - https://vendors.sdkman.io/release + https://vendors.sdkman.io/release) + HTTP_CODE=$(echo "$RESPONSE" | tail -n1) + RESPONSE_BODY=$(echo "$RESPONSE" | sed '$d') + echo "SDKMAN release response: $RESPONSE_BODY" + if [ "$HTTP_CODE" -ge 400 ]; then + echo "ERROR: Failed to release to SDKMAN (HTTP $HTTP_CODE): $RESPONSE_BODY" + exit 1 + fi echo "Sent $ZIP_FILENAME to SDKMAN" + # Set the default version for SDKMAN - curl -s -X PUT \ + RESPONSE=$(curl -s -w "\n%{http_code}" -X PUT \ -H "Consumer-Key: $SDKMAN_CONSUMER_KEY" \ -H "Consumer-Token: $SDKMAN_CONSUMER_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"candidate": "'"$SDKMAN_CANDIDATE"'", "version": "'"$VERSION"'"}' \ - https://vendors.sdkman.io/default + https://vendors.sdkman.io/default) + HTTP_CODE=$(echo "$RESPONSE" | tail -n1) + RESPONSE_BODY=$(echo "$RESPONSE" | sed '$d') + echo "SDKMAN default response: $RESPONSE_BODY" + if [ "$HTTP_CODE" -ge 400 ]; then + echo "ERROR: Failed to set default version in SDKMAN (HTTP $HTTP_CODE): $RESPONSE_BODY" + exit 1 + fi echo "Set $ZIP_FILENAME as default version for SDKMAN" + # Announce the release to SDKMAN - curl -s -X POST \ + RESPONSE=$(curl -s -w "\n%{http_code}" -X POST \ -H "Consumer-Key: $SDKMAN_CONSUMER_KEY" \ -H "Consumer-Token: $SDKMAN_CONSUMER_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"candidate": "'"$SDKMAN_CANDIDATE"'", "version": "'"$VERSION"'", "url": "https://github.com/liquibase/liquibase/releases/tag/v'"$VERSION"'"}' \ - https://vendors.sdkman.io/announce/struct + https://vendors.sdkman.io/announce/struct) + HTTP_CODE=$(echo "$RESPONSE" | tail -n1) + RESPONSE_BODY=$(echo "$RESPONSE" | sed '$d') + echo "SDKMAN announce response: $RESPONSE_BODY" + if [ "$HTTP_CODE" -ge 400 ]; then + echo "ERROR: Failed to announce to SDKMAN (HTTP $HTTP_CODE): $RESPONSE_BODY" + exit 1 + fi echo "Announced $ZIP_FILENAME to SDKMAN" - name: Update SDKMAN version for ${{ inputs.artifactId }} dry-run