# Customise this file, documentation can be found here:
# https://github.com/fastlane/fastlane/tree/master/fastlane/docs
# All available actions: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Actions.md
# can also be listed using the `fastlane actions` command
# Change the syntax highlighting to Ruby
# All lines starting with a # are ignored when running `fastlane`
# If you want to automatically update fastlane if a new version is available:
# update_fastlane
# This is the minimum version number required.
# Update this, if you use features of a newer version
fastlane_version "2.62.1"
default_platform :android
platform :android 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 |options|
gradle(task: "test")
end
desc "Build the apk"
lane :build do |options|
gradle(
task: "clean assemble",
build_type: 'Release',
flavor: "#{getFlavorName(options)}",
)
end
desc "Bump version code/build number"
private_lane :bump do |options|
increment_version_code(
var_name: "versionCode|versionBuild",
verbose: true,
)
end
desc "Tag as a new version"
private_lane :tag do |options|
git_commit(
path: "app/build.gradle",
message: "Increment version code to #{lane_context[SharedValues::VERSION_CODE]} for next release",
)
add_git_tag(
tag: "#{ENV['VERSION']}-#{lane_context[SharedValues::VERSION_CODE]}",
message: "Create new tag for version #{ENV['VERSION']}-#{lane_context[SharedValues::VERSION_CODE]}",
)
push_to_git_remote(
local_branch: "HEAD",
remote_branch: "master",
)
end
desc "Build and deploy the apk for Alpha testing in Google Play store"
lane :deploy_alpha do |options|
bump
gradle(
task: "clean assemble",
build_type: 'Release',
)
sh("cp -vf metadata/android/en-US/changelogs/latest.txt metadata/android/en-US/changelogs/#{lane_context[SharedValues::VERSION_CODE]}.txt")
sh("git add metadata/android/en-US/changelogs/#{lane_context[SharedValues::VERSION_CODE]}.txt")
sh("git add metadata/android/en-US/changelogs/latest.txt")
sh("cp -vf metadata/android/nl-NL/changelogs/latest.txt metadata/android/nl-NL/changelogs/#{lane_context[SharedValues::VERSION_CODE]}.txt")
sh("git add metadata/android/nl-NL/changelogs/#{lane_context[SharedValues::VERSION_CODE]}.txt")
sh("git add metadata/android/nl-NL/changelogs/latest.txt")
git_commit(
path: [
"fastlane/metadata/android/en-US/changelogs/latest.txt",
"fastlane/metadata/android/en-US/changelogs/#{lane_context[SharedValues::VERSION_CODE]}.txt",
"fastlane/metadata/android/nl-NL/changelogs/latest.txt",
"fastlane/metadata/android/nl-NL/changelogs/#{lane_context[SharedValues::VERSION_CODE]}.txt",
],
message: "Provide changelogs for this version",
)
supply(
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: true,
skip_upload_screenshots: true,
)
tag
end
desc "Update metadata only, including images and screenshots"
lane :deploy_metadata do |options|
supply(
skip_upload_apk: true,
skip_upload_metadata: false,
skip_upload_images: false,
skip_upload_screenshots: false,
)
end
desc "Deploy a new version to the Google Play"
lane :alpha do |options|
supply(
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: "#{getPackageName(options)}",
)
end
desc "Deploy a new version to the Google Play"
lane :beta do |options|
supply(
track: 'alpha',
track_promote_to: 'beta',
skip_upload_apk: true,
skip_upload_metadata: true,
skip_upload_images: true,
skip_upload_screenshots: true,
package_name: "#{getPackageName(options)}",
)
end
desc "Deploy a new version to the Google Play"
lane :production do |options|
supply(
track: 'beta',
track_promote_to: 'production',
skip_upload_apk: true,
skip_upload_metadata: true,
skip_upload_images: true,
skip_upload_screenshots: true,
package_name: "#{getPackageName(options)}",
)
end
# You can define as many lanes as you want
after_all do |lane, options|
# This block is called, only if the executed lane was successful
# slack(
# message: "Successfully deployed new App Update."
# )
end
error do |lane, exception|
# slack(
# message: exception.message,
# success: false
# )
end
end
# More information about multiple platforms in fastlane: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Platforms.md
# All available actions: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Actions.md
# fastlane reports which actions are used
# No personal data is sent or shared. Learn more at https://github.com/fastlane/enhancer