# 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 fastlane_require "dotenv" fastlane_require "fileutils" Dotenv.load ".env.secret" setup_ci if ENV["CI"] logname = "CHANGELOG.txt" desc "Bump version" lane :bump do |options| unless options[:only] if options[:since] between = [options[:since], "HEAD"] else between = nil end log = changelog_from_git_commits( between: between, pretty: "* %s", date_format: "short" ) path = "../#{logname}" path_tmp = "#{path}.tmp" File.open(path_tmp, "w") { |file| file.write(log) } if system("vim", path_tmp) FileUtils.mv(path_tmp, path) else File.delete(path_tmp) UI.user_error!("CHANGELOG editor cancelled") end end version = options[:version] build = options[:build] increment_build_number(build_number: build) unless version.nil? || version.empty? increment_version_number_in_xcodeproj(version_number: version) end commit_version_bump( message: "Bump version", include: [logname] ) add_git_tag( includes_lane: false, sign: true ) end desc "Run app tests" lane :test do scan( clean: true, xcargs: "CODE_SIGNING_ALLOWED=NO", verbose: true ) end desc "Push a new beta build to TestFlight" lane :beta do preface = ENV["TESTFLIGHT_PREFACE"] log = File.read("../#{logname}") changelog = preface + log match(type: "appstore") gym( clean: true, build_path: "build", derived_data_path: "build/derived_data" ) pilot( changelog: changelog, distribute_external: true, notify_external_testers: false ) end desc "Distribute to Public Beta" lane :public_beta do pilot( distribute_only: true, distribute_external: true, notify_external_testers: true ) end