From 0a6894d82ca193dc4e2bac1ee467a9e213ce2759 Mon Sep 17 00:00:00 2001 From: Davide De Rosa Date: Mon, 4 Oct 2021 19:21:14 +0200 Subject: [PATCH] Rewrite beta local/remote flow - Merge envs - Explicit lanes in workflow --- .env | 1 + .env.beta | 6 ++++++ .env.beta.ios | 6 ------ .env.beta.mac | 4 ---- .env.dev | 3 +++ .env.dev.ios | 4 ---- .env.dev.mac | 8 -------- .env.ios | 10 ++++++---- .env.mac | 11 +++++++---- .github/workflows/beta.yml | 17 +++++++---------- .gitignore | 2 -- Submodules/fastlane-ci-templates | 2 +- fastlane/Appfile | 2 +- fastlane/Fastfile | 17 +++++++++++++++++ fastlane/Gymfile | 5 ++--- fastlane/Matchfile | 4 ++-- scripts/commit-beta.sh | 12 +++++------- scripts/push-refs.sh | 6 ------ 18 files changed, 58 insertions(+), 62 deletions(-) delete mode 100644 .env.beta.ios delete mode 100644 .env.beta.mac delete mode 100644 .env.dev.ios delete mode 100644 .env.dev.mac delete mode 100755 scripts/push-refs.sh diff --git a/.env b/.env index 50cfa4f7..370e0d9f 100644 --- a/.env +++ b/.env @@ -3,6 +3,7 @@ APP_NAME="Passepartout" #MATCH_READONLY="true" BUILD_PATH="build" DIST_PATH="dist" +CHANGELOG_PREFACE="templates/CHANGELOG.preface.md" # constant (fastlane) LC_ALL="en_US.UTF-8" diff --git a/.env.beta b/.env.beta index e9bd5760..ea37ca30 100644 --- a/.env.beta +++ b/.env.beta @@ -1 +1,7 @@ TARGET="beta" +MATCH_TYPE="appstore" +GYM_EXPORT_METHOD="app-store" +GYM_SKIP_PACKAGE_PKG="false" +DEMO_ACCOUNT_REQUIRED="true" +PILOT_DISTRIBUTE_EXTERNAL="true" +PILOT_BETA_APP_DESCRIPTION="Passepartout is a non-official, user-friendly OpenVPNĀ® client." diff --git a/.env.beta.ios b/.env.beta.ios deleted file mode 100644 index fab29f7d..00000000 --- a/.env.beta.ios +++ /dev/null @@ -1,6 +0,0 @@ -MATCH_TYPE="appstore" -GYM_EXPORT_METHOD="app-store" -DEMO_ACCOUNT_REQUIRED="true" -PILOT_IPA="$DIST_PATH/$PLATFORM/$TARGET/$APP_NAME.ipa" -PILOT_DISTRIBUTE_EXTERNAL="true" -PILOT_BETA_APP_DESCRIPTION="Passepartout is a non-official, user-friendly OpenVPNĀ® client." diff --git a/.env.beta.mac b/.env.beta.mac deleted file mode 100644 index 251ae042..00000000 --- a/.env.beta.mac +++ /dev/null @@ -1,4 +0,0 @@ -MATCH_TYPE="appstore" -MATCH_ADDITIONAL_CERT_TYPES="mac_installer_distribution" -GYM_EXPORT_METHOD="app-store" -GYM_SKIP_PACKAGE_PKG="false" diff --git a/.env.dev b/.env.dev index 87333bd6..a5302c50 100644 --- a/.env.dev +++ b/.env.dev @@ -1,2 +1,5 @@ TARGET="dev" +MATCH_TYPE="adhoc" +GYM_EXPORT_METHOD="ad-hoc" +GYM_SKIP_PACKAGE_PKG="true" APPCENTER_DISTRIBUTE_DESTINATION_TYPE="group" diff --git a/.env.dev.ios b/.env.dev.ios deleted file mode 100644 index f10a8a11..00000000 --- a/.env.dev.ios +++ /dev/null @@ -1,4 +0,0 @@ -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 deleted file mode 100644 index 51f337d9..00000000 --- a/.env.dev.mac +++ /dev/null @@ -1,8 +0,0 @@ -MATCH_TYPE="development" -GYM_EXPORT_METHOD="development" -GYM_SKIP_PACKAGE_PKG="true" -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 index f2a8d4d7..d88b94be 100644 --- a/.env.ios +++ b/.env.ios @@ -1,6 +1,8 @@ PLATFORM="ios" -MATCH_PLATFORM="ios" -DELIVER_PLATFORM="ios" -GYM_SCHEME="Passepartout-iOS" -BUNDLE_CONTEXT="ios" APP_ROOT="Passepartout/App/iOS" +MATCH_PLATFORM="ios" +GYM_SCHEME="Passepartout-iOS" +DELIVER_PLATFORM="ios" +PILOT_IPA="$DIST_PATH/$PLATFORM/beta/$APP_NAME.ipa" +APPCENTER_APP_NAME=$GYM_SCHEME +APPCENTER_DISTRIBUTE_IPA="$DIST_PATH/$PLATFORM/dev/$APP_NAME.ipa" diff --git a/.env.mac b/.env.mac index 4f467e93..076fbf0c 100644 --- a/.env.mac +++ b/.env.mac @@ -1,6 +1,9 @@ PLATFORM="mac" -MATCH_PLATFORM="macos" -DELIVER_PLATFORM="osx" -GYM_SCHEME="Passepartout-macOS" -BUNDLE_CONTEXT="ios" APP_ROOT="Passepartout/App/macOS" +MATCH_PLATFORM="macos" +MATCH_ADDITIONAL_CERT_TYPES="mac_installer_distribution" +GYM_SCHEME="Passepartout-macOS" +DELIVER_PLATFORM="osx" +PILOT_PKG="$DIST_PATH/$PLATFORM/beta/$APP_NAME.pkg" +APPCENTER_APP_NAME=$GYM_SCHEME +APPCENTER_DISTRIBUTE_FILE="$DIST_PATH/$PLATFORM/dev/$APP_NAME.app" diff --git a/.github/workflows/beta.yml b/.github/workflows/beta.yml index 9df83932..017df5d0 100644 --- a/.github/workflows/beta.yml +++ b/.github/workflows/beta.yml @@ -25,6 +25,7 @@ env: PILOT_USERNAME: ${{ secrets.PILOT_USERNAME }} PILOT_GROUPS: ${{ secrets.PILOT_GROUPS }} PILOT_BETA_APP_FEEDBACK: ${{ secrets.PILOT_BETA_APP_FEEDBACK }} + PILOT_BETA_APP_REVIEW_INFO: ${{ secrets.PILOT_BETA_APP_REVIEW_INFO }} APPCENTER_OWNER_NAME: ${{ secrets.APPCENTER_OWNER_NAME }} APPCENTER_API_TOKEN: ${{ secrets.APPCENTER_API_TOKEN }} @@ -57,22 +58,18 @@ jobs: - name: Prepare for fastlane match run: | scripts/recognize-match-hostname.sh - bundle exec fastlane run create_keychain name:"$MATCH_KEYCHAIN_NAME" password:"$MATCH_KEYCHAIN_PASSWORD" - ci/update-certs.sh mac development - ci/update-certs.sh ios development + bundle exec fastlane preinstall_development_certs - name: Build (macOS) run: | - ci/beta-archive.sh mac + bundle exec fastlane --env mac,beta create_archive scripts/reset-archive.sh - name: Build (iOS) run: | - ci/beta-archive.sh ios + bundle exec fastlane --env ios,beta create_archive scripts/reset-archive.sh - - name: Send to App Store (macOS) + - name: Submit to TestFlight (macOS) run: | - ci/set-build-changelog.sh mac - ci/store-deploy.sh mac + PILOT_CHANGELOG=`ci/build-changelog.sh mac` bundle exec fastlane --env mac,beta beta_deploy - name: Submit to TestFlight (iOS) run: | - ci/set-build-changelog.sh ios - ci/beta-deploy.sh ios + PILOT_CHANGELOG=`ci/build-changelog.sh ios` bundle exec fastlane --env ios,beta beta_deploy diff --git a/.gitignore b/.gitignore index 06b3636d..e45946e5 100644 --- a/.gitignore +++ b/.gitignore @@ -13,8 +13,6 @@ Pods **/fastlane/metadata/trade_representative_contact_information build/ dist/ -templates/CHANGELOG.ios.md -templates/CHANGELOG.mac.md templates/new-strings.txt iap/ .env.secret* diff --git a/Submodules/fastlane-ci-templates b/Submodules/fastlane-ci-templates index 0d2a8384..e0bfc0d4 160000 --- a/Submodules/fastlane-ci-templates +++ b/Submodules/fastlane-ci-templates @@ -1 +1 @@ -Subproject commit 0d2a83844998c38ed44a6850a2477978881263ca +Subproject commit e0bfc0d42300df9e06f89ef919884efa3e671e67 diff --git a/fastlane/Appfile b/fastlane/Appfile index 2c50a00e..c94e220e 100644 --- a/fastlane/Appfile +++ b/fastlane/Appfile @@ -1,4 +1,4 @@ -app_identifier("com.algoritmico.#{ENV['BUNDLE_CONTEXT']}.Passepartout") # The bundle identifier of your app +app_identifier("com.algoritmico.ios.Passepartout") # The bundle identifier of your app # For more information about the Appfile, see: diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 5ddbafab..2cdee717 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -14,3 +14,20 @@ # update_fastlane import("../Submodules/fastlane-ci-templates/fastlane/Fastfile.include") + +desc "Preinstall development certificates" +lane :preinstall_development_certs do + create_keychain( + name: ENV["MATCH_KEYCHAIN_NAME"], + password: ENV["MATCH_KEYCHAIN_PASSWORD"] + ) + app_store_connect_api_key + match( + platform: "macos", + type: "development" + ) + match( + platform: "ios", + type: "development" + ) +end diff --git a/fastlane/Gymfile b/fastlane/Gymfile index 9312d42d..6343a578 100644 --- a/fastlane/Gymfile +++ b/fastlane/Gymfile @@ -10,9 +10,8 @@ # 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}" +stage_build_path = "#{ENV["BUILD_PATH"]}/#{ENV["PLATFORM"]}/#{ENV["TARGET"]}" +stage_artifacts_path = "#{ENV["DIST_PATH"]}/#{ENV["PLATFORM"]}/#{ENV["TARGET"]}" derived_data_path stage_build_path buildlog_path stage_build_path diff --git a/fastlane/Matchfile b/fastlane/Matchfile index dc077331..7885fa90 100644 --- a/fastlane/Matchfile +++ b/fastlane/Matchfile @@ -1,8 +1,8 @@ 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" + "com.algoritmico.ios.Passepartout", + "com.algoritmico.ios.Passepartout.Tunnel" ] # For all available options run `fastlane match --help` diff --git a/scripts/commit-beta.sh b/scripts/commit-beta.sh index 6be085d9..c0e5e4c8 100755 --- a/scripts/commit-beta.sh +++ b/scripts/commit-beta.sh @@ -7,15 +7,13 @@ fi ci/update-changelog.sh ios ci/update-changelog.sh mac +ci/copy-release-notes.sh ios +ci/copy-release-notes.sh mac + git add Passepartout/App/*/CHANGELOG.md git add Passepartout/App/*/fastlane/metadata/*/release_notes.txt git commit -m "Set beta release" -VERSION=`agvtool mvers -terse1` -BUILD=`agvtool vers -terse` - -# predict build number (add commits count) -HISTORY=`git rev-list --count HEAD` -BUILD=$((BUILD + HISTORY)) - +VERSION=`ci/version-number.sh` +BUILD=`ci/build-number.sh` git tag "v$VERSION-b$BUILD" diff --git a/scripts/push-refs.sh b/scripts/push-refs.sh deleted file mode 100755 index 7585f1f2..00000000 --- a/scripts/push-refs.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -git push && git push github -git push --tags && git push --tags github -git checkout stable && git merge master -git push github -git checkout master