image: cirrusci/flutter:latest stages: - update - build-debug - build-release - deploy update: stage: update script: - flutter packages get - flutter packages upgrade interruptible: true android:build-debug: stage: build-debug script: # Flutter local configuration - echo flutter.sdk=$FLUTTER_PATH > android/local.properties - echo sdk.dir=$ANDROID_SDK_PATH >> android/local.properties - echo flutter.buildMode=debug >> android/local.properties # Android signing - echo "$ANDROID_DEBUG_KEYSTORE_FILE" | base64 -d > android/app/my.keystore - echo storeFile=my.keystore > android/key.properties - echo storePassword=$ANDROID_DEBUG_KEYSTORE_PASSWORD >> android/key.properties - echo keyAlias=$ANDROID_DEBUG_KEY_ALIAS >> android/key.properties - echo keyPassword=$ANDROID_DEBUG_KEY_PASSWORD >> android/key.properties # build flutter app - flutter packages get - flutter clean - flutter build apk --debug # prepare artifact - find . -name "*.apk" # where is my apk? artifacts: paths: - build/app/outputs/apk/debug expire_in: 1 week interruptible: true android:build-release: stage: build-release only: - master dependencies: - android:build-debug script: # Flutter local configuration - echo flutter.sdk=$FLUTTER_PATH > android/local.properties - echo sdk.dir=$ANDROID_SDK_PATH >> android/local.properties - echo flutter.buildMode=release >> android/local.properties # Android signing - echo "$ANDROID_KEYSTORE_FILE" | base64 -d > android/app/my.keystore - echo storeFile=my.keystore > android/key.properties - echo storePassword=$ANDROID_KEYSTORE_PASSWORD >> android/key.properties - echo keyAlias=$ANDROID_KEY_ALIAS >> android/key.properties - echo keyPassword=$ANDROID_KEY_PASSWORD >> android/key.properties # build flutter app - flutter packages get - flutter clean - flutter build apk --release # prepare artifact - find . -name "*.apk" # where is my apk? artifacts: paths: - build/app/outputs/apk/release expire_in: 1 week interruptible: true android:deploy: stage: deploy only: - master dependencies: - android:build-release script: - wget ${REPOSITORY_UPDATE_WEBHOOK}?token=${REPOSITORY_TOKEN}