Files

137 lines
3.2 KiB
Ruby

# Customise this file, documentation can be found here:
# https://github.com/fastlane/fastlane/tree/master/fastlane/docs
# All available actions: https://docs.fastlane.tools/actions
# 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.4.0"
default_platform :ios
platform :ios do
before_all do
# ENV["SLACK_URL"] = "https://hooks.slack.com/services/..."
carthage(
use_submodules: true,
no_build: true
)
end
desc "Generate app icons"
lane :icons do
sh "cd .. && export SOURCE_ROOT=`pwd` && ./Authenticator/Resources/GenerateIcons.sh"
end
desc "Generate screenshots"
lane :screenshots do
# Generate updated screenshots.
snapshot
# Compress the screenshots with pngcrush
sh "for IMG in screenshots/**/*.png; do pngcrush -rem alla -ow \"$IMG\"; done"
end
desc "Build the app for release"
lane :build do
set_build_number
gym
clear_build_number
# Add a git tag for this build.
add_git_tag(
tag: "build/#{build_number}"
)
end
desc "Runs all the tests"
lane :test do
scan(scheme: "Authenticator")
end
desc "Submit a new beta build to TestFlight"
lane :beta do
# Ensure that the generated icons are up-to-date and committed.
icons
ensure_git_status_clean
# Build and upload the new binary to TestFlight.
build
pilot
end
desc "Deploy a new version to the App Store"
lane :release do
# Ensure that the generated icons and screenshots are up-to-date and committed.
icons
screenshots
ensure_git_status_clean
# Build and upload the app metadata and binary to iTunes Connect.
build
deliver(
overwrite_screenshots: true,
submit_for_review: true,
automatic_release: true,
phased_release: true
)
# Add a git tag for this release.
add_git_tag(
tag: get_version_number
)
# After committing and tagging, bump the version number.
increment_version_number
end
# You can define as many lanes as you want
after_all do |lane|
# 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
def build_number
# Generate a build number from the number of git commits.
return number_of_commits.to_s
end
def set_build_number
increment_build_number(
build_number: build_number,
skip_info_plist: true,
)
end
def clear_build_number
increment_build_number(
build_number: 0,
skip_info_plist: true,
)
end
# More information about multiple platforms in fastlane: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Platforms.md
# All available actions: https://docs.fastlane.tools/actions
# fastlane reports which actions are used
# No personal data is recorded. Learn more at https://github.com/fastlane/enhancer