From 505d79d9d64c7b5710ec02f5cd99e5748974ad9a Mon Sep 17 00:00:00 2001 From: Davide De Rosa Date: Sat, 2 Jan 2021 14:39:30 +0100 Subject: [PATCH] Refactor fastlane configuration/environment Remember skip_package_pkg for macOS. --- .env | 9 +++++++++ .env.beta | 4 ++++ .env.beta.ios | 2 ++ .env.beta.mac | 2 ++ .env.dev | 2 ++ .env.dev.ios | 4 ++++ .env.dev.mac | 7 +++++++ .env.ios | 3 +++ .env.mac | 3 +++ .env.template.secret-codesign | 2 ++ .env.template.secret-deploy | 10 ++++++++++ Gemfile.lock | 14 ++++++++------ fastlane/Appfile | 5 +++++ fastlane/Deliverfile | 8 ++++++++ fastlane/Fastfile | 16 ++++++++++++++++ fastlane/Gymfile | 27 +++++++++++++++++++++++++++ fastlane/Matchfile | 9 +++++++++ fastlane/Pluginfile | 5 +++++ fastlane/Precheckfile | 29 +++++++++++++++++++++++++++++ 19 files changed, 155 insertions(+), 6 deletions(-) create mode 100644 .env create mode 100644 .env.beta create mode 100644 .env.beta.ios create mode 100644 .env.beta.mac create mode 100644 .env.dev create mode 100644 .env.dev.ios create mode 100644 .env.dev.mac create mode 100644 .env.ios create mode 100644 .env.mac create mode 100644 .env.template.secret-codesign create mode 100644 .env.template.secret-deploy create mode 100644 fastlane/Appfile create mode 100644 fastlane/Deliverfile create mode 100644 fastlane/Fastfile create mode 100644 fastlane/Gymfile create mode 100644 fastlane/Matchfile create mode 100644 fastlane/Pluginfile create mode 100644 fastlane/Precheckfile diff --git a/.env b/.env new file mode 100644 index 00000000..f3c22cda --- /dev/null +++ b/.env @@ -0,0 +1,9 @@ +PROJECT="Passepartout" +APP_NAME="Passepartout" +MATCH_READONLY="true" +BUILD_PATH="build" +DIST_PATH="dist" + +# constant (fastlane) +LC_ALL="en_US.UTF-8" +LANG="en_US.UTF-8" diff --git a/.env.beta b/.env.beta new file mode 100644 index 00000000..26e2f7cc --- /dev/null +++ b/.env.beta @@ -0,0 +1,4 @@ +TARGET="beta" +PILOT_IPA="$DIST_PATH/$PLATFORM/$TARGET/$APP_NAME.ipa" +PILOT_DISTRIBUTE_EXTERNAL="true" +DEMO_ACCOUNT_REQUIRED="true" diff --git a/.env.beta.ios b/.env.beta.ios new file mode 100644 index 00000000..64a23f6a --- /dev/null +++ b/.env.beta.ios @@ -0,0 +1,2 @@ +MATCH_TYPE="appstore" +GYM_EXPORT_METHOD="app-store" diff --git a/.env.beta.mac b/.env.beta.mac new file mode 100644 index 00000000..64a23f6a --- /dev/null +++ b/.env.beta.mac @@ -0,0 +1,2 @@ +MATCH_TYPE="appstore" +GYM_EXPORT_METHOD="app-store" diff --git a/.env.dev b/.env.dev new file mode 100644 index 00000000..87333bd6 --- /dev/null +++ b/.env.dev @@ -0,0 +1,2 @@ +TARGET="dev" +APPCENTER_DISTRIBUTE_DESTINATION_TYPE="group" diff --git a/.env.dev.ios b/.env.dev.ios new file mode 100644 index 00000000..f10a8a11 --- /dev/null +++ b/.env.dev.ios @@ -0,0 +1,4 @@ +MATCH_TYPE="adhoc" +GYM_EXPORT_METHOD="ad-hoc" +APPCENTER_APP_NAME=$GYM_SCHEME +APPCENTER_DISTRIBUTE_IPA="$DIST_PATH/$PLATFORM/$TARGET/$APP_NAME.ipa" diff --git a/.env.dev.mac b/.env.dev.mac new file mode 100644 index 00000000..4bd339bc --- /dev/null +++ b/.env.dev.mac @@ -0,0 +1,7 @@ +MATCH_TYPE="development" +GYM_EXPORT_METHOD="development" +APPCENTER_APP_NAME=$GYM_SCHEME +APPCENTER_DISTRIBUTE_FILE="$DIST_PATH/$PLATFORM/$TARGET/$APP_NAME.app" +FL_NOTARIZE_PACKAGE=$APPCENTER_DISTRIBUTE_FILE +FL_NOTARIZE_PRINT_LOG=true +FL_NOTARIZE_VERBOSE=true diff --git a/.env.ios b/.env.ios new file mode 100644 index 00000000..969b800b --- /dev/null +++ b/.env.ios @@ -0,0 +1,3 @@ +PLATFORM="ios" +GYM_SCHEME="Passepartout-iOS" +BUNDLE_CONTEXT="ios" diff --git a/.env.mac b/.env.mac new file mode 100644 index 00000000..f866166d --- /dev/null +++ b/.env.mac @@ -0,0 +1,3 @@ +PLATFORM="mac" +GYM_SCHEME="Passepartout-macOS" +BUNDLE_CONTEXT="macos" diff --git a/.env.template.secret-codesign b/.env.template.secret-codesign new file mode 100644 index 00000000..c8924c7d --- /dev/null +++ b/.env.template.secret-codesign @@ -0,0 +1,2 @@ +MATCH_GIT_URL= +MATCH_PASSWORD= diff --git a/.env.template.secret-deploy b/.env.template.secret-deploy new file mode 100644 index 00000000..7544df2e --- /dev/null +++ b/.env.template.secret-deploy @@ -0,0 +1,10 @@ +APPLE_ID= +FASTLANE_USERNAME= +FASTLANE_PASSWORD= +APPCENTER_OWNER_NAME= +APPCENTER_API_TOKEN= +APPCENTER_DISTRIBUTE_DESTINATIONS= +PILOT_GROUPS= +PILOT_USERNAME= +DELIVER_USERNAME= +PROJECT_ROOT= diff --git a/Gemfile.lock b/Gemfile.lock index 5297b14d..bc5ad7a6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -14,7 +14,7 @@ GEM json (>= 1.5.1) atomos (0.1.3) aws-eventstream (1.1.0) - aws-partitions (1.413.0) + aws-partitions (1.414.0) aws-sdk-core (3.110.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.239.0) @@ -85,16 +85,18 @@ GEM ethon (0.12.0) ffi (>= 1.3.0) excon (0.78.1) - faraday (1.2.0) + faraday (1.3.0) + faraday-net_http (~> 1.0) multipart-post (>= 1.2, < 3) ruby2_keywords faraday-cookie_jar (0.0.7) faraday (>= 0.8.0) http-cookie (~> 1.0.0) + faraday-net_http (1.0.0) faraday_middleware (1.0.0) faraday (~> 1.0) fastimage (2.2.1) - fastlane (2.170.0) + fastlane (2.171.0) CFPropertyList (>= 2.3, < 4.0.0) addressable (>= 2.3, < 3.0.0) aws-sdk-s3 (~> 1.0) @@ -167,7 +169,7 @@ GEM http-cookie (1.0.3) domain_name (~> 0.5) httpclient (2.8.3) - i18n (1.8.5) + i18n (1.8.6) concurrent-ruby (~> 1.0) jmespath (1.4.0) json (2.5.1) @@ -184,7 +186,7 @@ GEM naturally (2.2.0) netrc (0.11.0) os (1.1.1) - plist (3.5.0) + plist (3.6.0) public_suffix (4.0.6) rake (13.0.3) representable (3.0.4) @@ -232,7 +234,7 @@ GEM nanaimo (~> 0.3.0) xcpretty (0.3.0) rouge (~> 2.0.7) - xcpretty-travis-formatter (1.0.0) + xcpretty-travis-formatter (1.0.1) xcpretty (~> 0.2, >= 0.0.7) PLATFORMS diff --git a/fastlane/Appfile b/fastlane/Appfile new file mode 100644 index 00000000..2c50a00e --- /dev/null +++ b/fastlane/Appfile @@ -0,0 +1,5 @@ +app_identifier("com.algoritmico.#{ENV['BUNDLE_CONTEXT']}.Passepartout") # The bundle identifier of your app + + +# For more information about the Appfile, see: +# https://docs.fastlane.tools/advanced/#appfile diff --git a/fastlane/Deliverfile b/fastlane/Deliverfile new file mode 100644 index 00000000..d081bbc1 --- /dev/null +++ b/fastlane/Deliverfile @@ -0,0 +1,8 @@ +# The Deliverfile allows you to store various App Store Connect metadata +# For more information, check out the docs +# https://docs.fastlane.tools/actions/deliver/ + +skip_binary_upload true +skip_metadata false +skip_screenshots false +overwrite_screenshots true diff --git a/fastlane/Fastfile b/fastlane/Fastfile new file mode 100644 index 00000000..5ddbafab --- /dev/null +++ b/fastlane/Fastfile @@ -0,0 +1,16 @@ +# 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 + +import("../Submodules/fastlane-ci-templates/fastlane/Fastfile.include") diff --git a/fastlane/Gymfile b/fastlane/Gymfile new file mode 100644 index 00000000..e4ed42cd --- /dev/null +++ b/fastlane/Gymfile @@ -0,0 +1,27 @@ +# For more information about this configuration visit +# https://docs.fastlane.tools/actions/gym/#gymfile + +# In general, you can use the options available +# fastlane gym --help + +# Remove the # in front of the line to enable the option + +# scheme "Example" + +# sdk "iphoneos9.0" + +build_target = ENV["TARGET"] +stage_build_path = "#{ENV["BUILD_PATH"]}/#{ENV["PLATFORM"]}/#{build_target}" +stage_artifacts_path = "#{ENV["DIST_PATH"]}/#{ENV["PLATFORM"]}/#{build_target}" + +derived_data_path stage_build_path +buildlog_path stage_build_path +build_path stage_build_path +output_directory stage_artifacts_path +output_name ENV["APP_NAME"] + +clean true +silent false +include_bitcode false +skip_profile_detection true +skip_package_pkg true diff --git a/fastlane/Matchfile b/fastlane/Matchfile new file mode 100644 index 00000000..dc077331 --- /dev/null +++ b/fastlane/Matchfile @@ -0,0 +1,9 @@ +type "development" # The default type, can be: appstore, adhoc, enterprise or development + +app_identifier [ + "com.algoritmico.#{ENV['BUNDLE_CONTEXT']}.Passepartout", + "com.algoritmico.#{ENV['BUNDLE_CONTEXT']}.Passepartout.Tunnel" +] + +# For all available options run `fastlane match --help` +# Remove the # in the beginning of the line to enable the other options diff --git a/fastlane/Pluginfile b/fastlane/Pluginfile new file mode 100644 index 00000000..756bff8e --- /dev/null +++ b/fastlane/Pluginfile @@ -0,0 +1,5 @@ +# Autogenerated by fastlane +# +# Ensure this file is checked in to source control! + +gem 'fastlane-plugin-appcenter' diff --git a/fastlane/Precheckfile b/fastlane/Precheckfile new file mode 100644 index 00000000..4bbea73a --- /dev/null +++ b/fastlane/Precheckfile @@ -0,0 +1,29 @@ +# For more information about this configuration visit +# https://docs.fastlane.tools/actions/precheck/ + +# In general, you can use the options available +# fastlane precheck --help + +# Remove the # in front of the line to enable the option + +# You have three possible values for each rule options +# :skip +# indicates that your metadata will not be checked by this rule + +# :warn +# when triggered, this rule will warn you of a potential problem + +# :error +# when triggered, this rule will cause an error to be displayed and it will prevent any further fastlane commands from running after precheck finishes + +# Examples: +# negative_apple_sentiment(level: :skip) +# curse_words(level: :warn) +# future_functionality(level: :error) +# other_platforms(level: :error) +# placeholder_text(level: :error) +# test_words(level: :error) +# unreachable_urls(level: :error) +# custom_text(data: ["fabric"], level: :warn) + +include_in_app_purchases false