Fix release stage: use withCredentials to gracefully skip when creds missing
This commit is contained in:
parent
abec4c6c84
commit
4747dbc3c6
62
Jenkinsfile
vendored
62
Jenkinsfile
vendored
@ -2,8 +2,8 @@ pipeline {
|
|||||||
agent { label 'android' }
|
agent { label 'android' }
|
||||||
|
|
||||||
environment {
|
environment {
|
||||||
ANDROID_HOME = "${env.HOME}/Android/Sdk"
|
ANDROID_HOME = '/opt/android-sdk'
|
||||||
ANDROID_SDK_ROOT = "${env.HOME}/Android/Sdk"
|
ANDROID_SDK_ROOT = '/opt/android-sdk'
|
||||||
JAVA_HOME = '/opt/java/openjdk'
|
JAVA_HOME = '/opt/java/openjdk'
|
||||||
PATH = "${env.ANDROID_HOME}/cmdline-tools/latest/bin:${env.ANDROID_HOME}/platform-tools:${env.PATH}"
|
PATH = "${env.ANDROID_HOME}/cmdline-tools/latest/bin:${env.ANDROID_HOME}/platform-tools:${env.PATH}"
|
||||||
}
|
}
|
||||||
@ -14,37 +14,6 @@ pipeline {
|
|||||||
}
|
}
|
||||||
|
|
||||||
stages {
|
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') {
|
stage('Build Debug APK') {
|
||||||
steps {
|
steps {
|
||||||
sh 'chmod +x gradlew'
|
sh 'chmod +x gradlew'
|
||||||
@ -56,7 +25,7 @@ pipeline {
|
|||||||
when {
|
when {
|
||||||
expression {
|
expression {
|
||||||
try {
|
try {
|
||||||
credentials('joykoo-scanner-keystore')
|
withCredentials([file(credentialsId: 'joykoo-scanner-keystore', variable: 'TEST')]) {}
|
||||||
return true
|
return true
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
echo 'Signing credentials not configured — skipping release build.'
|
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 {
|
steps {
|
||||||
sh '''
|
withCredentials([
|
||||||
./gradlew assembleRelease --no-daemon \
|
file(credentialsId: 'joykoo-scanner-keystore', variable: 'KEYSTORE_FILE'),
|
||||||
-Pandroid.injected.signing.store.file=$KEYSTORE_FILE \
|
usernamePassword(credentialsId: 'joykoo-scanner-keystore-creds',
|
||||||
-Pandroid.injected.signing.store.password=$KEYSTORE_CREDS_PSW \
|
usernameVariable: 'KEY_ALIAS',
|
||||||
-Pandroid.injected.signing.key.alias=$KEYSTORE_CREDS_USR \
|
passwordVariable: 'KEY_PASSWORD')
|
||||||
-Pandroid.injected.signing.key.password=$KEYSTORE_CREDS_PSW
|
]) {
|
||||||
'''
|
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
|
||||||
|
'''
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user