-
Notifications
You must be signed in to change notification settings - Fork 148
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1288 from mapbox/zjm-MAPSIOS-308
Automation for Examples app pre-release build
- Loading branch information
Showing
6 changed files
with
371 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
source "https://rubygems.org" | ||
|
||
gem "fastlane" |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,221 @@ | ||
GEM | ||
remote: https://rubygems.org/ | ||
specs: | ||
CFPropertyList (3.0.5) | ||
rexml | ||
addressable (2.8.1) | ||
public_suffix (>= 2.0.2, < 6.0) | ||
artifactory (3.0.15) | ||
atomos (0.1.3) | ||
aws-eventstream (1.2.0) | ||
aws-partitions (1.640.0) | ||
aws-sdk-core (3.158.0) | ||
aws-eventstream (~> 1, >= 1.0.2) | ||
aws-partitions (~> 1, >= 1.525.0) | ||
aws-sigv4 (~> 1.1) | ||
jmespath (~> 1, >= 1.6.1) | ||
aws-sdk-kms (1.58.0) | ||
aws-sdk-core (~> 3, >= 3.127.0) | ||
aws-sigv4 (~> 1.1) | ||
aws-sdk-s3 (1.114.0) | ||
aws-sdk-core (~> 3, >= 3.127.0) | ||
aws-sdk-kms (~> 1) | ||
aws-sigv4 (~> 1.4) | ||
aws-sigv4 (1.5.2) | ||
aws-eventstream (~> 1, >= 1.0.2) | ||
babosa (1.0.4) | ||
claide (1.1.0) | ||
colored (1.2) | ||
colored2 (3.1.2) | ||
commander (4.6.0) | ||
highline (~> 2.0.0) | ||
declarative (0.0.20) | ||
digest-crc (0.6.4) | ||
rake (>= 12.0.0, < 14.0.0) | ||
domain_name (0.5.20190701) | ||
unf (>= 0.0.5, < 1.0.0) | ||
dotenv (2.8.1) | ||
emoji_regex (3.2.3) | ||
excon (0.93.0) | ||
faraday (1.10.2) | ||
faraday-em_http (~> 1.0) | ||
faraday-em_synchrony (~> 1.0) | ||
faraday-excon (~> 1.1) | ||
faraday-httpclient (~> 1.0) | ||
faraday-multipart (~> 1.0) | ||
faraday-net_http (~> 1.0) | ||
faraday-net_http_persistent (~> 1.0) | ||
faraday-patron (~> 1.0) | ||
faraday-rack (~> 1.0) | ||
faraday-retry (~> 1.0) | ||
ruby2_keywords (>= 0.0.4) | ||
faraday-cookie_jar (0.0.7) | ||
faraday (>= 0.8.0) | ||
http-cookie (~> 1.0.0) | ||
faraday-em_http (1.0.0) | ||
faraday-em_synchrony (1.0.0) | ||
faraday-excon (1.1.0) | ||
faraday-httpclient (1.0.1) | ||
faraday-multipart (1.0.4) | ||
multipart-post (~> 2) | ||
faraday-net_http (1.0.1) | ||
faraday-net_http_persistent (1.2.0) | ||
faraday-patron (1.0.0) | ||
faraday-rack (1.0.0) | ||
faraday-retry (1.0.3) | ||
faraday_middleware (1.2.0) | ||
faraday (~> 1.0) | ||
fastimage (2.2.6) | ||
fastlane (2.210.1) | ||
CFPropertyList (>= 2.3, < 4.0.0) | ||
addressable (>= 2.8, < 3.0.0) | ||
artifactory (~> 3.0) | ||
aws-sdk-s3 (~> 1.0) | ||
babosa (>= 1.0.3, < 2.0.0) | ||
bundler (>= 1.12.0, < 3.0.0) | ||
colored | ||
commander (~> 4.6) | ||
dotenv (>= 2.1.1, < 3.0.0) | ||
emoji_regex (>= 0.1, < 4.0) | ||
excon (>= 0.71.0, < 1.0.0) | ||
faraday (~> 1.0) | ||
faraday-cookie_jar (~> 0.0.6) | ||
faraday_middleware (~> 1.0) | ||
fastimage (>= 2.1.0, < 3.0.0) | ||
gh_inspector (>= 1.1.2, < 2.0.0) | ||
google-apis-androidpublisher_v3 (~> 0.3) | ||
google-apis-playcustomapp_v1 (~> 0.1) | ||
google-cloud-storage (~> 1.31) | ||
highline (~> 2.0) | ||
json (< 3.0.0) | ||
jwt (>= 2.1.0, < 3) | ||
mini_magick (>= 4.9.4, < 5.0.0) | ||
multipart-post (~> 2.0.0) | ||
naturally (~> 2.2) | ||
optparse (~> 0.1.1) | ||
plist (>= 3.1.0, < 4.0.0) | ||
rubyzip (>= 2.0.0, < 3.0.0) | ||
security (= 0.1.3) | ||
simctl (~> 1.6.3) | ||
terminal-notifier (>= 2.0.0, < 3.0.0) | ||
terminal-table (>= 1.4.5, < 2.0.0) | ||
tty-screen (>= 0.6.3, < 1.0.0) | ||
tty-spinner (>= 0.8.0, < 1.0.0) | ||
word_wrap (~> 1.0.0) | ||
xcodeproj (>= 1.13.0, < 2.0.0) | ||
xcpretty (~> 0.3.0) | ||
xcpretty-travis-formatter (>= 0.0.3) | ||
fastlane-plugin-versioning (0.5.1) | ||
gh_inspector (1.1.3) | ||
google-apis-androidpublisher_v3 (0.29.0) | ||
google-apis-core (>= 0.9.0, < 2.a) | ||
google-apis-core (0.9.0) | ||
addressable (~> 2.5, >= 2.5.1) | ||
googleauth (>= 0.16.2, < 2.a) | ||
httpclient (>= 2.8.1, < 3.a) | ||
mini_mime (~> 1.0) | ||
representable (~> 3.0) | ||
retriable (>= 2.0, < 4.a) | ||
rexml | ||
webrick | ||
google-apis-iamcredentials_v1 (0.15.0) | ||
google-apis-core (>= 0.9.0, < 2.a) | ||
google-apis-playcustomapp_v1 (0.11.0) | ||
google-apis-core (>= 0.9.0, < 2.a) | ||
google-apis-storage_v1 (0.19.0) | ||
google-apis-core (>= 0.9.0, < 2.a) | ||
google-cloud-core (1.6.0) | ||
google-cloud-env (~> 1.0) | ||
google-cloud-errors (~> 1.0) | ||
google-cloud-env (1.6.0) | ||
faraday (>= 0.17.3, < 3.0) | ||
google-cloud-errors (1.3.0) | ||
google-cloud-storage (1.43.0) | ||
addressable (~> 2.8) | ||
digest-crc (~> 0.4) | ||
google-apis-iamcredentials_v1 (~> 0.1) | ||
google-apis-storage_v1 (~> 0.19.0) | ||
google-cloud-core (~> 1.6) | ||
googleauth (>= 0.16.2, < 2.a) | ||
mini_mime (~> 1.0) | ||
googleauth (1.2.0) | ||
faraday (>= 0.17.3, < 3.a) | ||
jwt (>= 1.4, < 3.0) | ||
memoist (~> 0.16) | ||
multi_json (~> 1.11) | ||
os (>= 0.9, < 2.0) | ||
signet (>= 0.16, < 2.a) | ||
highline (2.0.3) | ||
http-cookie (1.0.5) | ||
domain_name (~> 0.5) | ||
httpclient (2.8.3) | ||
jmespath (1.6.1) | ||
json (2.6.2) | ||
jwt (2.5.0) | ||
memoist (0.16.2) | ||
mini_magick (4.11.0) | ||
mini_mime (1.1.2) | ||
multi_json (1.15.0) | ||
multipart-post (2.0.0) | ||
nanaimo (0.3.0) | ||
naturally (2.2.1) | ||
optparse (0.1.1) | ||
os (1.1.4) | ||
plist (3.6.0) | ||
public_suffix (5.0.0) | ||
rake (13.0.6) | ||
representable (3.2.0) | ||
declarative (< 0.1.0) | ||
trailblazer-option (>= 0.1.1, < 0.2.0) | ||
uber (< 0.2.0) | ||
retriable (3.1.2) | ||
rexml (3.2.5) | ||
rouge (2.0.7) | ||
ruby2_keywords (0.0.5) | ||
rubyzip (2.3.2) | ||
security (0.1.3) | ||
signet (0.17.0) | ||
addressable (~> 2.8) | ||
faraday (>= 0.17.5, < 3.a) | ||
jwt (>= 1.5, < 3.0) | ||
multi_json (~> 1.10) | ||
simctl (1.6.8) | ||
CFPropertyList | ||
naturally | ||
terminal-notifier (2.0.0) | ||
terminal-table (1.8.0) | ||
unicode-display_width (~> 1.1, >= 1.1.1) | ||
trailblazer-option (0.1.2) | ||
tty-cursor (0.7.1) | ||
tty-screen (0.8.1) | ||
tty-spinner (0.9.3) | ||
tty-cursor (~> 0.7) | ||
uber (0.1.0) | ||
unf (0.1.4) | ||
unf_ext | ||
unf_ext (0.0.8.2) | ||
unicode-display_width (1.8.0) | ||
webrick (1.7.0) | ||
word_wrap (1.0.0) | ||
xcodeproj (1.22.0) | ||
CFPropertyList (>= 2.3.3, < 4.0) | ||
atomos (~> 0.1.3) | ||
claide (>= 1.0.2, < 2.0) | ||
colored2 (~> 3.1) | ||
nanaimo (~> 0.3.0) | ||
rexml (~> 3.2.4) | ||
xcpretty (0.3.0) | ||
rouge (~> 2.0.7) | ||
xcpretty-travis-formatter (1.0.1) | ||
xcpretty (~> 0.2, >= 0.0.7) | ||
|
||
PLATFORMS | ||
ruby | ||
x86_64-darwin-21 | ||
|
||
DEPENDENCIES | ||
fastlane | ||
fastlane-plugin-versioning | ||
|
||
BUNDLED WITH | ||
2.3.21 |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
app_identifier("com.mapbox.examples") # The bundle identifier of your app | ||
apple_id("zizi.miles@mapbox.com") # Your Apple Developer Portal username | ||
|
||
itc_team_id("34158803") # App Store Connect Team ID | ||
team_id("GJZR2MEM28") # Developer Portal Team ID | ||
|
||
# For more information about the Appfile, see: | ||
# https://docs.fastlane.tools/advanced/#appfile |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,127 @@ | ||
# 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.204.1" | ||
default_platform :ios | ||
|
||
ENV["FASTLANE_SKIP_UPDATE_CHECK"] = "1" | ||
ENV["SPACESHIP_SKIP_2FA_UPGRADE"] = "1" | ||
# Set default target for get_version_number() | ||
ENV["FL_VERSION_NUMBER_TARGET"] = "Examples" | ||
platform :ios do | ||
before_all do | ||
# ENV["SLACK_URL"] = "https://hooks.slack.com/services/..." | ||
end | ||
|
||
desc "Increment build number based on current TestFlight build number" | ||
desc "Commits the changes, but does not push them to any remote." | ||
lane :bump_build_number do | ||
increment_build_number_in_plist( | ||
build_number: (latest_testflight_build_number + 1).to_s, | ||
) | ||
end | ||
|
||
desc "Submit a new Beta Build to Apple TestFlight" | ||
desc "This will also make sure that the signing certificate and provisioning profiles are up to date." | ||
lane :build_and_submit do | ||
sync_code_signing(type: "appstore") | ||
build_app( | ||
scheme: "Examples", | ||
workspace: "Umbrella.xcworkspace", | ||
xcargs: "SWIFT_TREAT_WARNINGS_AS_ERRORS=NO" # Disable to bypass Deprecated error on OfflineManager example | ||
) | ||
upload_to_testflight( | ||
beta_app_feedback_email: "applemachine@mapbox.com", | ||
beta_app_description: "Examples app pre-release test build.", | ||
demo_account_required: false, | ||
skip_waiting_for_build_processing: false | ||
) | ||
end | ||
|
||
desc "Get current Mapbox Maps SDK for iOS version number from framework." | ||
private_lane :mapbox_sdk_version do | ||
mapbox_version_path = Dir.glob("#{ENV['PWD']}/**/MapboxMaps.json").first | ||
`jq .version #{mapbox_version_path}` | ||
end | ||
|
||
desc "Generate release notes." | ||
lane :release_notes do | ||
"Mapbox Maps SDK for iOS #{mapbox_sdk_version}." | ||
end | ||
|
||
desc "Generate build from source Umbrella.xcworkspace." | ||
desc "Then build and submit a new beta build to Apple TestFlight, after bumping just the build number." | ||
lane :update_and_release do | ||
Dir.chdir("..") do | ||
# code here runs in the parent directory | ||
iOS_branch = prompt( | ||
text: "iOS SDK branch: ", | ||
) | ||
native_branch = prompt( | ||
text: "GL-Native branch: ", | ||
) | ||
turf_branch = prompt( | ||
text: "Turf branch: ", | ||
) | ||
mme_branch = prompt( | ||
text: "MME branch: ", | ||
) | ||
build_from_source_script = "./generate-debuggable-environment --commit #{iOS_branch} --gl-native-commit #{native_branch} --turf-commit #{turf_branch} --mme-commit #{mme_branch}" | ||
puts "Generating project using requested dependencies using: #{build_from_source_script}" | ||
sh("#{build_from_source_script}") | ||
end | ||
update_fastlane() | ||
release_bump | ||
end | ||
|
||
desc "Build and submit a new beta build to Apple TestFlight." | ||
lane :beta do | ||
build_and_submit | ||
end | ||
|
||
desc "Build and submit a new beta build to Apple TestFlight, after bumping just the build number." | ||
lane :beta_release do | ||
# update_dependencies | ||
bump_build_number | ||
build_and_submit | ||
end | ||
|
||
desc "Bump to latest maps SDK version before releasing." | ||
lane :release_bump do | ||
beta_release | ||
end | ||
# | ||
# desc "Download dSYMs from iTunesConnect and upload them to Crashlytics" | ||
# lane :refresh_dsyms do | ||
# download_dsyms | ||
# crashlytics_api_key = get_info_plist_value(path: "Examples/Info.plist", key: "CrashlyticsAPIKey") | ||
# upload_symbols_to_crashlytics(api_token: crashlytics_api_key) | ||
# clean_build_artifacts # Delete the local dSYM files | ||
# end | ||
|
||
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 | ||
# 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 | ||
opt_out_usage |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
git_url("git@github.com:mapbox/apple-certificates.git") | ||
type("appstore") # The default type, can be: appstore, adhoc, enterprise or development | ||
app_identifier(["com.mapbox.examples"]) | ||
|
||
# For consistency, only one username should ever be used to update certs/profiles. | ||
# See 1Password for account credentials. | ||
username "applemachine@mapbox.com" |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# Autogenerated by fastlane | ||
# | ||
# Ensure this file is checked in to source control! | ||
|
||
gem 'fastlane-plugin-versioning' |