Files
paperless-mobile/android/fastlane/Fastfile

116 lines
3.4 KiB
Ruby

# 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