-
Andri Joos authored43b93337
flutter-android.gitlab-ci.yml 2.53 KiB
# Required variables:
## SIGNING_KEYSTORE: The keystore, base64 encoded
## SIGNING_STORE_FILE: The path to the keystore, storeFile property in the signing.properties file
## SIGNING_STORE_PW: The password for the keystore, keyPassword property in the signing.properties file
## SIGNING_KEY_PW: The password for the key, keyPassword property in the signing.properties file
## SIGNING_KEY_ALIAS: The alias for the key, keyAlias property in the signing.properties file
## APP_DIRECTORY: The directory of the app
## APP_NAME: The name of the output aab, the resulting apk will be named ${APP_NAME}_${APPLICATION_VERSION}.apk
## APPLICATION_VERSION: The build name of the application
## APPLICATION_BUILD_NUMBER: The build number of the application
stages:
- build
variables:
SIGNING_PROPERTIES_FILE: android/signing.properties
SINGING_KEYSTORE_FILE: android/signing-keystore.jks
FLUTTER_ANDROID_IMAGE: andrijoos/flutter:3.24.5-android
BUNDLETOOL_IMAGE: andrijoos/bundletool
ANDROID_PLATFORMS: android-arm,android-arm64,android-x64
android:
stage: build
image:
name: ${FLUTTER_ANDROID_IMAGE}
pull_policy: always
tags:
- amd64
artifacts:
paths:
- ${APP_NAME}_${APPLICATION_VERSION}.aab
expire_in: 1 day
script:
- cd ${APP_DIRECTORY}
- echo "storePassword=$SIGNING_STORE_PW" >> $SIGNING_PROPERTIES_FILE
- echo "keyPassword=$SIGNING_KEY_PW" >> $SIGNING_PROPERTIES_FILE
- echo "keyAlias=$SIGNING_KEY_ALIAS" >> $SIGNING_PROPERTIES_FILE
- echo "storeFile=$SIGNING_STORE_FILE" >> $SIGNING_PROPERTIES_FILE
- echo $SIGNING_KEYSTORE | base64 -d > $SINGING_KEYSTORE_FILE
- flutter build appbundle --release --target-platform ${ANDROID_PLATFORMS} --build-name ${APPLICATION_VERSION} --build-number ${APPLICATION_BUILD_NUMBER}
after_script:
- mv ${APP_DIRECTORY}/build/app/outputs/bundle/release/app-release.aab ./${APP_NAME}_${APPLICATION_VERSION}.aab
.build_universal_apk:
stage: build
image:
name: ${BUNDLETOOL_IMAGE}
pull_policy: always
tags:
- amd64
when: manual
needs:
- android
artifacts:
paths:
- ${APP_NAME}_${APPLICATION_VERSION}.apk
expire_in: 1 day
script:
- echo $SIGNING_KEYSTORE | base64 -d > keystore.jks
- java -jar /app/bundletool.jar build-apks --bundle=${APP_NAME}_${APPLICATION_VERSION}.aab --output=apks.apks --mode=universal --ks=keystore.jks --ks-pass=pass:$SIGNING_STORE_PW --ks-key-alias=$SIGNING_KEY_ALIAS --key-pass=pass:$SIGNING_KEY_PW
- unzip -q apks.apks -d apks
- mv apks/universal.apk ./${APP_NAME}_${APPLICATION_VERSION}.apk