class Fastlane::Actions::AddFastlaneVarAction

Public Class Methods

app_key_for(namespace) click to toggle source

Returns the app key for cryptex. optionally namespaced

# File lib/fastlane/plugin/react_native_release/actions/add_fastlane_var.rb, line 87
def self.app_key_for(namespace)
  default_app_key = Helper::ReactNativeReleaseHelper::APP_CRYPTEX_KEY 
  return default_app_key if namespace.strip.empty?

  "#{namespace}_#{default_app_key}"
end
authors() click to toggle source
# File lib/fastlane/plugin/react_native_release/actions/add_fastlane_var.rb, line 71
def self.authors
  # So no one will ever forget your contribution to fastlane :) You are awesome btw!
  ["cball", "isaiahgrey93"]
end
available_options() click to toggle source
# File lib/fastlane/plugin/react_native_release/actions/add_fastlane_var.rb, line 50
def self.available_options
  [
    FastlaneCore::ConfigItem.new(key: :key,
                                 env_name: "FL_ADD_APP_VAR_KEY",
                                 description: "Enter the ENV name",
                                 type: String),
    FastlaneCore::ConfigItem.new(key: :value,
                                 env_name: "FL_ADD_APP_VAR_VALUE",
                                 description: "Enter the ENV value",
                                 type: String),
  ]
end
default_env_path() click to toggle source
# File lib/fastlane/plugin/react_native_release/actions/add_fastlane_var.rb, line 94
def self.default_env_path
  Helper::ReactNativeReleaseHelper::APP_ENV_PATH
end
description() click to toggle source

@!group Documentation

# File lib/fastlane/plugin/react_native_release/actions/add_fastlane_var.rb, line 41
def self.description
  "Adds a single ENV var for fastlane to the encrypted repository"
end
details() click to toggle source
# File lib/fastlane/plugin/react_native_release/actions/add_fastlane_var.rb, line 45
def self.details
  # Optional:
  # this is your chance to provide a more detailed description of this action
end
env_path_for(namespace) click to toggle source

Returns a path for an env var. optionally namespaced

# File lib/fastlane/plugin/react_native_release/actions/add_fastlane_var.rb, line 81
def self.env_path_for(namespace)
  return default_env_path if namespace.strip.empty?
  "#{default_env_path}.#{namespace}"
end
is_supported?(platform) click to toggle source
# File lib/fastlane/plugin/react_native_release/actions/add_fastlane_var.rb, line 76
def self.is_supported?(platform)
  [:ios, :android].include?(platform)
end
return_value() click to toggle source
# File lib/fastlane/plugin/react_native_release/actions/add_fastlane_var.rb, line 63
def self.return_value
  # If your method provides a return value, you can describe here what it does
end
run(params) click to toggle source
# File lib/fastlane/plugin/react_native_release/actions/add_fastlane_var.rb, line 7
def self.run(params)
  is_ci = ENV['CI'] === 'true'
  cryptex_key = Helper::ReactNativeReleaseHelper::FASTLANE_CRYPTEX_KEY
 
  key = params[:key]
  value = params[:value]
  existing_app_vars = {}

  if !is_ci && !UI.confirm("This will add #{key}=#{value} to the #{cryptex_key} namespace in the encrypted context repo. Proceed?")
    UI.abort_with_message!("Stepping away...")
  end

  begin
    existing_vars = other_action.cryptex(
      type: 'export_env',
      key:  cryptex_key
    )
  rescue => ex
    # If key doesn't exist cryptex will error
  end

  other_action.cryptex(
    type: "import_env",
    key:  cryptex_key,
    hash: existing_vars.merge({ key => value })
  )

  UI.success('Encrypted fastlane ENV vars')
end