diff --git a/Jenkinsfile b/Jenkinsfile index 60fdf5a..c772851 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -163,7 +163,7 @@ PY retry(3) { sh ''' set -euo pipefail - "$FLUTTER_ROOT/bin/flutter" build apk \ + JIZHANG_ANDROID_ABIS=arm64-v8a "$FLUTTER_ROOT/bin/flutter" build apk \ --flavor internal --release --target-platform android-arm64 \ --build-name "$APP_VERSION" --build-number "$ANDROID_VERSION_CODE" \ --dart-define=INTERNAL_BUILD=true \ diff --git a/frontend/android/app/build.gradle.kts b/frontend/android/app/build.gradle.kts index 44fe6ff..57aa9d7 100644 --- a/frontend/android/app/build.gradle.kts +++ b/frontend/android/app/build.gradle.kts @@ -24,6 +24,16 @@ val releaseSigningKeys = listOf( ) val releaseSigningConfigured = keystorePropertiesFile.exists() && releaseSigningKeys.all { !keystoreProperties.getProperty(it).isNullOrBlank() } +val requestedAndroidAbis = System.getenv("JIZHANG_ANDROID_ABIS") + .orEmpty() + .split(',') + .map { it.trim() } + .filter { it.isNotEmpty() } + .toSet() +val supportedAndroidAbis = setOf("arm64-v8a", "armeabi-v7a", "x86", "x86_64") +require(requestedAndroidAbis.all(supportedAndroidAbis::contains)) { + "Unsupported JIZHANG_ANDROID_ABIS value: ${requestedAndroidAbis - supportedAndroidAbis}" +} fun pushBuildValue(name: String): String = (project.findProperty(name)?.toString() ?: System.getenv(name) ?: "") @@ -50,6 +60,11 @@ android { targetSdk = flutter.targetSdkVersion versionCode = flutter.versionCode versionName = flutter.versionName + if (requestedAndroidAbis.isNotEmpty()) { + ndk { + abiFilters.addAll(requestedAndroidAbis) + } + } buildConfigField("String", "PUSH_HUAWEI_APP_ID", "\"${pushBuildValue("PUSH_HUAWEI_APP_ID")}\"") buildConfigField("String", "PUSH_HONOR_APP_ID", "\"${pushBuildValue("PUSH_HONOR_APP_ID")}\"") buildConfigField("String", "PUSH_XIAOMI_APP_ID", "\"${pushBuildValue("PUSH_XIAOMI_APP_ID")}\"")