class Fastlane::Actions::MlsSetupCiAction

Public Class Methods

authors() click to toggle source
# File lib/fastlane/plugin/mls_setup_ci/actions/mls_setup_ci_action.rb, line 97
def self.authors
  ["Angelo Cassano"]
end
available_options() click to toggle source
# File lib/fastlane/plugin/mls_setup_ci/actions/mls_setup_ci_action.rb, line 105
def self.available_options
  [
    FastlaneCore::ConfigItem.new(key: :force,
                                 env_name: "FL_MYLITTLESUITE_SETUP_CI_FORCE",
                                 description: "Force setup, even if not executed in a CI",
                                 type: Boolean,
                                 optional: true,
                                 default_value: false),
    FastlaneCore::ConfigItem.new(key: :schema,
                                 env_name: "FL_MYLITTLESUITE_SETUP_CI_SCHEMA",
                                 description: "Define schema, useful to customize building paths to avoid concurrency",
                                 type: String,
                                 optional: true,
                                 default_value: ""),
    FastlaneCore::ConfigItem.new(key: :is_flutter,
                                 env_name: "FL_MYLITTLESUITE_SETUP_CI_IS_FLUTTER",
                                 description: "Is this a Flutter project?",
                                 type: Boolean,
                                 optional: true,
                                 default_value: false)
  ]
end
description() click to toggle source
# File lib/fastlane/plugin/mls_setup_ci/actions/mls_setup_ci_action.rb, line 93
def self.description
  "MyLittleSuite Setup CI"
end
details() click to toggle source
# File lib/fastlane/plugin/mls_setup_ci/actions/mls_setup_ci_action.rb, line 101
def self.details
  "MyLittleSuite Setup CI"
end
is_supported?(platform) click to toggle source
# File lib/fastlane/plugin/mls_setup_ci/actions/mls_setup_ci_action.rb, line 128
def self.is_supported?(platform)
  [:ios, :mac].include?(platform)
end
run(params) click to toggle source
# File lib/fastlane/plugin/mls_setup_ci/actions/mls_setup_ci_action.rb, line 7
def self.run(params)
  force = params[:force]
  schema = params[:schema]
  is_flutter = params[:is_flutter]

  setup_fastlane(schema, is_flutter)
  setup_cocoapods(schema, is_flutter)
  setup_match(schema, is_flutter)
  setup_scan(schema, is_flutter)
  setup_gym(schema, is_flutter)
  setup_snapshot(schema, is_flutter)

  if !Helper.ci? && !force
    UI.message("Currently not running on CI system.")
    return
  end

  setup_keychain(schema, is_flutter)
end
setup_cocoapods(schema, is_flutter) click to toggle source
# File lib/fastlane/plugin/mls_setup_ci/actions/mls_setup_ci_action.rb, line 33
def self.setup_cocoapods(schema, is_flutter)
  UI.message("Setting cocoapods default values.")
  ENV["FL_COCOAPODS_TRY_REPO_UPDATE_ON_ERROR"] = true.to_s
  ENV["FL_COCOAPODS_SILENT"] = Helper.ci?.to_s
end
setup_fastlane(schema, is_flutter) click to toggle source
# File lib/fastlane/plugin/mls_setup_ci/actions/mls_setup_ci_action.rb, line 27
def self.setup_fastlane(schema, is_flutter)
  UI.message("Setting fastlane default values.")
  ENV["FASTLANE_SKIP_UPDATE_CHECK"] = Helper.ci?.to_s
  ENV["FASTLANE_HIDE_CHANGELOG"] = Helper.ci?.to_s
end
setup_gym(schema, is_flutter) click to toggle source
# File lib/fastlane/plugin/mls_setup_ci/actions/mls_setup_ci_action.rb, line 51
def self.setup_gym(schema, is_flutter)
  include_string = is_flutter ? "false" : "true"

  UI.message("Setting gym default values.")
  ENV["GYM_BUILD_PATH"] = "./build/#{schema}"
  ENV["GYM_ARCHIVE_PATH"] = "./build/archive/#{schema}"
  ENV["GYM_DERIVED_DATA_PATH"] = "./build/derived_data/#{schema}"
  ENV["GYM_BUILDLOG_PATH"] = "./logs/gym/#{schema}"
  ENV["GYM_INCLUDE_SYMBOLS"] = include_string
  ENV["GYM_INCLUDE_BITCODE"] = include_string
  ENV["GYM_EXPORT_XCARGS"] = "-allowProvisioningUpdates"
end
setup_keychain(schema, is_flutter) click to toggle source
# File lib/fastlane/plugin/mls_setup_ci/actions/mls_setup_ci_action.rb, line 73
def self.setup_keychain(schema, is_flutter)
  keychain_name = "mylittlesuite_fastlane_keychain"
  keychain_password = ""

  UI.message("Creating temporary keychain: \"#{keychain_name}\".")
  Actions::CreateKeychainAction.run(
    name: keychain_name,
    default_keychain: true,
    unlock: true,
    timeout: 0,
    lock_when_sleeps: false,
    password: keychain_password
  )

  UI.message("Setting env for match and enabling match readonly mode.")
  ENV["MATCH_KEYCHAIN_NAME"] = keychain_name
  ENV["MATCH_KEYCHAIN_PASSWORD"] = keychain_password
  ENV["MATCH_READONLY"] = Helper.ci?.to_s
end
setup_match(schema, is_flutter) click to toggle source
# File lib/fastlane/plugin/mls_setup_ci/actions/mls_setup_ci_action.rb, line 39
def self.setup_match(schema, is_flutter)
  UI.message("Setting match default values.")
  ENV["MATCH_TYPE"] = "appstore"
end
setup_scan(schema, is_flutter) click to toggle source
# File lib/fastlane/plugin/mls_setup_ci/actions/mls_setup_ci_action.rb, line 44
def self.setup_scan(schema, is_flutter)
  UI.message("Setting scan default values.")
  ENV["SCAN_DERIVED_DATA_PATH"] = "./build/#{schema}"
  ENV["SCAN_BUILDLOG_PATH"] = "./logs/scan/#{schema}"
  ENV["SCAN_REINSTALL_APP"] = Helper.ci?.to_s
end
setup_snapshot(schema, is_flutter) click to toggle source
# File lib/fastlane/plugin/mls_setup_ci/actions/mls_setup_ci_action.rb, line 64
def self.setup_snapshot(schema, is_flutter)
  UI.message("Setting snapshot default values.")
  ENV["SNAPSHOT_REINSTALL_APP"] = true.to_s
  ENV["SNAPSHOT_CLEAR_PREVIOUS_SCREENSHOTS"] = true.to_s
  ENV["SNAPSHOT_SKIP_OPEN_SUMMARY"] = Helper.ci?.to_s
  ENV["SNAPSHOT_DERIVED_DATA_PATH"] = "./build/derived_data/#{schema}"
  ENV["SNAPSHOT_BUILDLOG_PATH"] = "./logs/snapshot/#{schema}"
end