Fastfile Example with a train
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
platform :ios do | |
desc 'Updates version number to the next one X.X.(Version +1)' | |
lane :update_version_number do | |
increment_version_number( | |
bump_type: "patch", | |
) | |
end | |
desc 'Simpy updates xcode build number to next one' | |
lane :update_build_number do | |
increment_build_number | |
build_number = get_build_number() | |
increment_build_number( | |
build_number: build_number + "." + Date.today.strftime("%Y%m%d") | |
) | |
end | |
desc 'Creates tag with current version number' | |
lane :create_version_tag do | |
add_git_tag( | |
tag: get_version_number(), | |
force: true | |
) | |
end | |
lane :build_and_submit_for_extenal_testing do | |
build_for_appstore | |
upload_for_external_testing | |
end | |
lane :build_for_appstore do | |
sigh | |
gym( | |
scheme:"My Shcheme" | |
) | |
end | |
lane :upload_for_external_testing do | |
pilot | |
end | |
desc 'Creates new version of the application' | |
lane :release_new_version do | |
merge_dev_to_master # Make sure that we have all the changes in the current branch | |
remove_developer_suffix_from_version_number | |
update_build_number | |
post_to_slack(progress:"[------:train:]", message: "Preparing everything") | |
setup_project() | |
post_to_slack(progress:"[-----:train:-]", message: "Building new release version #{get_version_number()}") | |
build_for_appstore | |
post_to_slack(progress:"[----:train:--]", message: "Pushing version to remote") | |
# make_commit_with_new_version | |
create_version_tag | |
merge_master_to_dev | |
update_version_number | |
add_developer_suffix_from_version_number | |
make_commit_with_new_version | |
push_to_git_remote | |
post_to_slack(progress:"[---:train:---]", message: "Uploading to the App Store") | |
upload_for_external_testing | |
post_to_slack(progress:"[:train:------]", message: "Build is processed in ready to be tested #{get_version_number()}") | |
end | |
## ---------------- | |
## PRIVATE LANES | |
## ---------------- | |
desc 'Removes develop suffix from the version' | |
private_lane :remove_developer_suffix_from_version_number do | |
version = get_version_number().gsub("d","") | |
increment_version_number( | |
version_number: version | |
) | |
end | |
desc 'Adds develop suffix from the version' | |
private_lane :add_developer_suffix_from_version_number do | |
version = get_version_number().gsub("d","") + "d" | |
increment_version_number( | |
version_number: version | |
) | |
end | |
desc 'Merges all updates from the development branch to the master branch' | |
private_lane :merge_dev_to_master do | |
sh "git fetch" | |
sh "git merge dev" | |
end | |
desc 'Merges all updates from the development branch to the master branch' | |
private_lane :merge_master_to_dev do | |
sh "git checkout dev" | |
sh "git merge -" | |
end | |
last_slack_progress = "[-----:train:]" | |
private_lane :post_to_slack do |options| | |
progress = options[:progress] | |
message = options[:message] | |
success = options[:success] | |
last_slack_progress = progress | |
slack( | |
message: "#{progress} #{message}", | |
slack_url: "https://hooks.slack.com/services/...", | |
success: success, | |
default_payloads: [] | |
) | |
end | |
error do |lane, exception| | |
puts "Fail? with '#{lane}' Excetption #{exception} " | |
if lane == :release_new_version | |
failure_message = last_slack_progress.gsub(":train:", ":boom:") | |
post_to_slack(message: "#{failure_message} Broken! #{exception}", success: false) | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment