From d49c478efab0d3915400c10cafa2acad2e1745c2 Mon Sep 17 00:00:00 2001 From: funman300 Date: Thu, 14 May 2026 15:37:14 -0700 Subject: [PATCH] fix(ci): diagnose KEYSTORE_BASE64 decode failure base64 -d is failing (1s step, keystore 0 bytes). Add diagnostics: - Print secret length to check for truncation - Capture base64 error output - Print exit code and file size - Use --decode instead of -d for clarity Co-Authored-By: Claude Sonnet 4.6 --- .gitea/workflows/android-release.yml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/android-release.yml b/.gitea/workflows/android-release.yml index 5f43e04..208aacf 100644 --- a/.gitea/workflows/android-release.yml +++ b/.gitea/workflows/android-release.yml @@ -102,10 +102,16 @@ jobs: # ── Build & sign with release keystore ───────────────────────────── - name: Decode keystore run: | - echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 -d > /tmp/solitaire-release.jks + secret_len=$(echo -n "${{ secrets.KEYSTORE_BASE64 }}" | wc -c) + echo "KEYSTORE_BASE64 secret length: ${secret_len} chars" + set +e + echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 --decode > /tmp/solitaire-release.jks 2>/tmp/b64_err.txt + b64_exit=$? + set -e size=$(wc -c < /tmp/solitaire-release.jks) - echo "Keystore size: ${size} bytes" - [ "$size" -gt 0 ] || { echo "ERROR: KEYSTORE_BASE64 secret is empty or unset"; exit 1; } + echo "base64 exit code: ${b64_exit}, keystore size: ${size} bytes" + [ -s /tmp/b64_err.txt ] && echo "base64 error: $(cat /tmp/b64_err.txt)" || true + [ "$size" -gt 0 ] || { echo "ERROR: KEYSTORE_BASE64 is empty or invalid base64"; exit 1; } - name: Build signed release APK env: