From 4747dbc3c6c3f15ee2166c7a897d0ecfb6beaffb Mon Sep 17 00:00:00 2001 From: caspar Date: Wed, 7 Oct 2026 19:13:55 -0400 Subject: [PATCH] Fix release stage: use withCredentials to gracefully skip when creds missing --- Jenkinsfile | 62 +++++++++++++++-------------------------------------- 1 file changed, 17 insertions(+), 45 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 33808d2..2cc76be 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -2,8 +2,8 @@ pipeline { agent { label 'android' } environment { - ANDROID_HOME = "${env.HOME}/Android/Sdk" - ANDROID_SDK_ROOT = "${env.HOME}/Android/Sdk" + ANDROID_HOME = '/opt/android-sdk' + ANDROID_SDK_ROOT = '/opt/android-sdk' JAVA_HOME = '/opt/java/openjdk' PATH = "${env.ANDROID_HOME}/cmdline-tools/latest/bin:${env.ANDROID_HOME}/platform-tools:${env.PATH}" } @@ -14,37 +14,6 @@ pipeline { } stages { - stage('Verify JDK') { - steps { - sh 'java -version' - sh 'javac -version' - } - } - - stage('Bootstrap Android SDK') { - steps { - sh ''' - if [ ! -d "$ANDROID_HOME/cmdline-tools/latest/bin" ]; then - echo "Installing Android SDK command-line tools..." - mkdir -p "$ANDROID_HOME" - CMDLINE_TOOLS_URL="https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip" - curl -fsSL -o /tmp/cmdline-tools.zip "$CMDLINE_TOOLS_URL" - unzip -qo /tmp/cmdline-tools.zip -d "$ANDROID_HOME/cmdline-tools-tmp" - mkdir -p "$ANDROID_HOME/cmdline-tools/latest" - mv "$ANDROID_HOME/cmdline-tools-tmp/cmdline-tools/"* "$ANDROID_HOME/cmdline-tools/latest/" - rm -rf "$ANDROID_HOME/cmdline-tools-tmp" /tmp/cmdline-tools.zip - fi - ''' - sh ''' - yes | sdkmanager --licenses > /dev/null 2>&1 || true - sdkmanager --install \ - "platform-tools" \ - "platforms;android-34" \ - "build-tools;34.0.0" - ''' - } - } - stage('Build Debug APK') { steps { sh 'chmod +x gradlew' @@ -56,7 +25,7 @@ pipeline { when { expression { try { - credentials('joykoo-scanner-keystore') + withCredentials([file(credentialsId: 'joykoo-scanner-keystore', variable: 'TEST')]) {} return true } catch (e) { echo 'Signing credentials not configured — skipping release build.' @@ -64,18 +33,21 @@ pipeline { } } } - environment { - KEYSTORE_FILE = credentials('joykoo-scanner-keystore') - KEYSTORE_CREDS = credentials('joykoo-scanner-keystore-creds') - } steps { - sh ''' - ./gradlew assembleRelease --no-daemon \ - -Pandroid.injected.signing.store.file=$KEYSTORE_FILE \ - -Pandroid.injected.signing.store.password=$KEYSTORE_CREDS_PSW \ - -Pandroid.injected.signing.key.alias=$KEYSTORE_CREDS_USR \ - -Pandroid.injected.signing.key.password=$KEYSTORE_CREDS_PSW - ''' + withCredentials([ + file(credentialsId: 'joykoo-scanner-keystore', variable: 'KEYSTORE_FILE'), + usernamePassword(credentialsId: 'joykoo-scanner-keystore-creds', + usernameVariable: 'KEY_ALIAS', + passwordVariable: 'KEY_PASSWORD') + ]) { + sh ''' + ./gradlew assembleRelease --no-daemon \ + -Pandroid.injected.signing.store.file=$KEYSTORE_FILE \ + -Pandroid.injected.signing.store.password=$KEY_PASSWORD \ + -Pandroid.injected.signing.key.alias=$KEY_ALIAS \ + -Pandroid.injected.signing.key.password=$KEY_PASSWORD + ''' + } } } }