Class: Kettle::Family::Workflow

Inherits:
Object
  • Object
show all
Defined in:
lib/kettle/family/workflow.rb

Constant Summary collapse

DEFAULT_COMMANDS =
{
  "template" => "bundle exec kettle-jem install",
  "test" => "bundle exec kettle-test",
  "lint" => "bundle exec rake rubocop_gradual",
  "docs" => "bundle exec rake yard",
  "gha-sha-pins" => "bundle exec kettle-gha-sha-pins",
  "bupb" => %w[bundle update --bundler]
}.freeze
GIT_SYNC_COMMANDS =
{
  "push" => [["push", %w[git push]]],
  "pull" => [["pull", %w[git pull --rebase]]],
  "up" => [["pull", %w[git pull --rebase]], ["push", %w[git push]]]
}.freeze
TEMPLATE_QUIET_ENV =
{
  "KETTLE_JEM_QUIET" => "true",
  "KETTLE_JEM_DEBUG" => "false",
  "KETTLE_DEV_DEBUG" => "false",
  "SMORG_RB_DEBUG" => "false",
  "DEBUG" => nil,
  "BUNDLE_QUIET" => "true",
  "BUNDLE_DEBUG" => "false",
  "BUNDLER_DEBUG" => "false",
  "BUNDLE_VERBOSE" => "false",
  "DEBUG_RESOLVER" => nil,
  "DEBUG_RESOLVER_TREE" => nil,
  "BUNDLER_DEBUG_RESOLVER" => nil,
  "BUNDLER_DEBUG_RESOLVER_TREE" => nil,
  "DEBUG_COMPACT_INDEX" => nil,
  "MOLINILLO_DEBUG" => nil,
  "BUNDLE_SILENCE_DEPRECATIONS" => "true",
  "BUNDLE_SILENCE_ROOT_WARNING" => "true",
  "BUNDLE_SUPPRESS_INSTALL_USING_MESSAGES" => "true"
}.freeze
REGISTRY_WAIT_ATTEMPTS =
15
REGISTRY_WAIT_INTERVAL_SECONDS =
15

Instance Method Summary collapse

Constructor Details

#initialize(command:, config:, members:, execute: false, accept: true, commit: true, allow_dirty: false, publish: false, push: false, tag: false, start_step: nil, skip_steps: nil, local_ci: false, continue_ci_failures: false, skip_bundle_audit: false, auto_dependency_floors: nil, gha_sha_pins_upgrade: "patch", gha_sha_pins_check: false, env_overrides: {}, debug: false, gem_signing_password: nil, jobs: nil, progress_io: nil, bup_args: [], bex_args: [], start_member: nil, start_branch: nil) ⇒ Workflow

Returns a new instance of Workflow.



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/kettle/family/workflow.rb', line 49

def initialize(command:, config:, members:, execute: false, accept: true, commit: true, allow_dirty: false, publish: false, push: false, tag: false, start_step: nil, skip_steps: nil, local_ci: false, continue_ci_failures: false, skip_bundle_audit: false, auto_dependency_floors: nil, gha_sha_pins_upgrade: "patch", gha_sha_pins_check: false, env_overrides: {}, debug: false, gem_signing_password: nil, jobs: nil, progress_io: nil, bup_args: [], bex_args: [], start_member: nil, start_branch: nil)
  @command = command
  @config = config
  @members = members
  @execute = execute
  @accept = accept
  @commit = commit
  @allow_dirty = allow_dirty
  @publish = publish
  @push = push
  @tag = tag
  @start_step = start_step
  @skip_steps = skip_steps
  @local_ci = local_ci
  @continue_ci_failures = continue_ci_failures
  @skip_bundle_audit = skip_bundle_audit
  @auto_dependency_floors = auto_dependency_floors.nil? ? config.release_auto_dependency_floors? : auto_dependency_floors
  @gha_sha_pins_upgrade = gha_sha_pins_upgrade
  @gha_sha_pins_check = gha_sha_pins_check
  @env_overrides = env_overrides
  @debug = debug
  @gem_signing_password = gem_signing_password
  @jobs = jobs
  @progress_io = progress_io
  @bup_args = bup_args
  @bex_args = bex_args
  @start_member = start_member
  @start_branch = start_branch
end

Instance Method Details

#resultsObject



79
80
81
82
83
84
85
86
87
88
# File 'lib/kettle/family/workflow.rb', line 79

def results
  preflight = branch_checkout_dirty_preflight_results
  return preflight unless preflight.empty?

  prompt_for_gem_signing_password if command == "release" && execute && release_signing_prompt_required?
  return branch_target_results unless config.release_target_branches.empty?
  return member_local_branch_target_results if member_local_branch_targets?

  current_branch_results(members)
end