# This file contains the fastlane.tools configuration # You can find the documentation at https://docs.fastlane.tools # # For a list of all available actions, check out # # https://docs.fastlane.tools/actions # # For a list of all available plugins, check out # # https://docs.fastlane.tools/plugins/available-plugins # # Uncomment the line if you want fastlane to automatically update itself # update_fastlane default_platform(:android) platform :android do |options| desc "Runs all the tests" lane :test do gradle(task: "test") end desc "Submit a new internal build to Google Play" lane :internal do |options| sh "flutter build appbundle -v" upload_to_play_store( track: 'internal', aab: '../build/app/outputs/bundle/release/app-release.aab', json_key_data: ENV['PLAY_STORE_CREDENTIALS'], release_status: options[:is_draft] ? "draft" : "completed", ) end desc "Promote internal track to alpha" lane :promote_to_alpha do |options| upload_to_play_store( track: 'internal', track_promote_to: 'alpha', json_key_data: ENV['PLAY_STORE_CREDENTIALS'], ) end desc "Submit a new alpha build to Google Play" lane :alpha do |options| sh "flutter build appbundle -v" upload_to_play_store( track: 'alpha', aab: '../build/app/outputs/bundle/release/app-release.aab', json_key_data: ENV['PLAY_STORE_CREDENTIALS'], release_status: options[:is_draft] ? "draft" : "completed", ) end desc "Promote alpha track to beta" lane :promote_to_beta do |options| upload_to_play_store( track: 'alpha', track_promote_to: 'beta', json_key_data: ENV['PLAY_STORE_CREDENTIALS'], ) end desc "Submit a new beta build to Google Play" lane :beta do |options| sh "flutter build appbundle -v" upload_to_play_store( track: 'beta', aab: '../build/app/outputs/bundle/release/app-release.aab', json_key_data: ENV['PLAY_STORE_CREDENTIALS'], release_status: options[:is_draft] ? "draft" : "completed", ) end desc "Promote beta track to prod" lane :promote_to_production do |options| upload_to_play_store( track: 'beta', track_promote_to: 'production', json_key_data: ENV['PLAY_STORE_CREDENTIALS'], ) end desc "Submit a new production build to Google Play" lane :production do |options| sh "flutter build appbundle -v" upload_to_play_store( track: 'production', aab: '../build/app/outputs/bundle/release/app-release.aab', json_key_data: ENV['PLAY_STORE_CREDENTIALS'], release_status: options[:is_draft] ? "draft" : "completed", ) end desc "Builds apks and creates a new release on GitHub" lane :github do |options| sh "flutter build apk --split-per-abi --release" sh "flutter build apk --release" set_github_release( repository_name: "astubenbord/paperless-mobile", api_token: ENV["GH_ACCESS_TOKEN"], name: "v" + flutter_version()["version_name"], tag_name: "v" + flutter_version()["version_name"], is_generate_release_notes: true, is_draft: options[:is_draft], commitish: options[:branch], upload_assets: [ "../build/app/outputs/flutter-apk/app-x86_64-release.apk", "../build/app/outputs/flutter-apk/app-armeabi-v7a-release.apk", "../build/app/outputs/flutter-apk/app-arm64-v8a-release.apk", "../build/app/outputs/flutter-apk/app-release.apk" ], ) end end