diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 51453d9..0597970 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -16,26 +16,55 @@ default_platform :android platform :android do - before_all do + + desc "Define flavor name for a branch" + def getFlavorName(options) + case options[:fl_branch] + when "production" + return "prd" + when "acceptance" + return "acc" + when "systemtest" + return "systemtest" + else + return "dev2" + end + end + + desc "Define package name for a branch" + def getPackageName(options) + case options[:fl_branch] + when "production" + return "nl.digital_me.dummyandroidapp" + when "acceptance" + return "nl.digital_me.dummyandroidapp.acc" + # when "systemtest" + # return "nl.digital_me.dummy.systemtest" + else + return "nl.digital_me.dummyandroidapp.dev2" + end + end + + before_all do |lane, options| # ENV["SLACK_URL"] = "https://hooks.slack.com/services/..." end desc "Runs all the tests" - lane :test do + lane :test do |options| gradle(task: "test") end desc "Build the apk" - lane :build do + lane :build do |options| gradle( task: "clean assemble", build_type: 'Release', - flavor: "prd", + flavor: "#{getFlavorName(options)}", ) end desc "Bump version code/build number" - private_lane :bump do + private_lane :bump do |options| increment_version_code( var_name: "versionCode|versionBuild", verbose: true, @@ -43,7 +72,7 @@ end desc "Tag as a new version" - private_lane :tag do + private_lane :tag do |options| git_commit( path: "app/build.gradle", message: "Increment version code to #{lane_context[SharedValues::VERSION_CODE]} for next release", @@ -59,7 +88,7 @@ end desc "Build and deploy the apk for Alpha testing in Google Play store" - lane :deploy_alpha do + lane :deploy_alpha do |options| bump gradle( task: "clean assemble", @@ -81,8 +110,8 @@ message: "Provide changelogs for this version", ) supply( - apk: 'app/build/outputs/apk/prd/release/app-prd-release.apk', - mapping: 'app/build/outputs/apk/prd/release/mapping.txt', + apk: "app/build/outputs/apk/#{getFlavorName(options)}/release/app-#{getFlavorName(options)}-release.apk", + mapping: "app/build/outputs/apk/#{getFlavorName(options)}/release/mapping.txt", track: 'alpha', skip_upload_apk: false, skip_upload_metadata: false, @@ -93,7 +122,7 @@ end desc "Update metadata only, including images and screenshots" - lane :deploy_metadata do + lane :deploy_metadata do |options| supply( skip_upload_apk: true, skip_upload_metadata: false, @@ -102,31 +131,22 @@ ) end - desc "Submit a new build to Crashlytics Beta" - lane :beta_crash do - gradle(task: "assembleRelease") - crashlytics - - # sh "your_script.sh" - # You can also use other beta testing services here - end - desc "Deploy a new version to the Google Play" - lane :alpha do + lane :alpha do |options| supply( - apk: 'app/build/outputs/apk/prd/release/app-prd-release.apk', - mapping: 'app/build/outputs/apk/prd/release/mapping.txt', + apk: "app/build/outputs/apk/#{getFlavorName(options)}/release/app-#{getFlavorName(options)}-release.apk", + mapping: "app/build/outputs/apk/#{getFlavorName(options)}/release/mapping.txt", track: 'alpha', skip_upload_apk: false, skip_upload_metadata: false, skip_upload_images: false, skip_upload_screenshots: false, - package_name: "nl.digital_me.dummyandroidapp", + package_name: "#{getPackageName(options)}", ) end desc "Deploy a new version to the Google Play" - lane :beta do + lane :beta do |options| supply( track: 'alpha', track_promote_to: 'beta', @@ -134,12 +154,12 @@ skip_upload_metadata: true, skip_upload_images: true, skip_upload_screenshots: true, - package_name: "nl.digital_me.dummyandroidapp", + package_name: "#{getPackageName(options)}", ) end desc "Deploy a new version to the Google Play" - lane :production do + lane :production do |options| supply( track: 'beta', track_promote_to: 'production', @@ -147,13 +167,13 @@ skip_upload_metadata: true, skip_upload_images: true, skip_upload_screenshots: true, - package_name: "nl.digital_me.dummyandroidapp", + package_name: "#{getPackageName(options)}", ) end # You can define as many lanes as you want - after_all do |lane| + after_all do |lane, options| # This block is called, only if the executed lane was successful # slack(