Class: Buildizer::Buildizer

Inherits:
Object
  • Object
show all
Includes:
BuildizerConfMod, CiMod, DockerCacheMod, GitMod, MiscMod, OvercommitMod, PackageCloudMod, PackageVersionTagMod, ProjectSettingsMod, UserSettingsMod
Defined in:
lib/buildizer/buildizer.rb,
lib/buildizer/buildizer/ci_mod.rb,
lib/buildizer/buildizer/git_mod.rb,
lib/buildizer/buildizer/misc_mod.rb,
lib/buildizer/buildizer/overcommit_mod.rb,
lib/buildizer/buildizer/docker_cache_mod.rb,
lib/buildizer/buildizer/package_cloud_mod.rb,
lib/buildizer/buildizer/user_settings_mod.rb,
lib/buildizer/buildizer/buildizer_conf_mod.rb,
lib/buildizer/buildizer/project_settings_mod.rb,
lib/buildizer/buildizer/package_version_tag_mod.rb

Defined Under Namespace

Modules: BuildizerConfMod, CiMod, DockerCacheMod, GitMod, MiscMod, OvercommitMod, PackageCloudMod, PackageVersionTagMod, ProjectSettingsMod, UserSettingsMod

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from DockerCacheMod

#docker_cache, #docker_cache_clear_settings?, #docker_cache_setup!, #docker_cache_update_settings?, #setup_docker_cache_email, #setup_docker_cache_org, #setup_docker_cache_password, #setup_docker_cache_repo, #setup_docker_cache_server, #setup_docker_cache_user, #user_settings_docker_cache, #user_settings_docker_cache_org, #user_settings_docker_cache_repo_list, #user_settings_docker_cache_user, #user_settings_docker_cache_user_list

Methods included from PackageCloudMod

#package_cloud, #package_cloud_clear_settings?, #package_cloud_org, #package_cloud_repo, #package_cloud_setup!, #package_cloud_update_settings?, #setup_package_cloud_org_desc_list, #setup_package_cloud_org_list, #setup_package_cloud_repo_desc_list, #setup_package_cloud_repo_list, #user_settings_package_cloud, #user_settings_package_cloud_token

Methods included from OvercommitMod

#_overcommit_add_precommit!, #overcommit_buildizer_require, #overcommit_buildizer_require_list, #overcommit_ci_setup!, #overcommit_conf, #overcommit_conf_dump!, #overcommit_conf_path, #overcommit_hooks_path, #overcommit_hooks_pre_commit_path, #overcommit_setup!, #overcommit_verify_setup!

Methods included from GitMod

#git_available?, #git_remote_url

Methods included from PackageVersionTagMod

#package_version_tag, #package_version_tag_required_for_deploy?

Methods included from BuildizerConfMod

#buildizer_conf, #buildizer_conf_path, #buildizer_conf_setup!, #buildizer_conf_update

Methods included from CiMod

#ci, #ci_name

Methods included from UserSettingsMod

#user_settings, #user_settings_path, #user_settings_save!, #user_settings_setup!

Methods included from ProjectSettingsMod

#project_settings, #project_settings_path, #project_settings_save!, #project_settings_setup!

Methods included from MiscMod

#command, #command!, #raw_command, #raw_command!, #warn, #with_log, #write_path, #write_yaml

Constructor Details

#initialize(cli: nil, **kwargs) ⇒ Buildizer

Returns a new instance of Buildizer.



30
31
32
33
34
35
36
37
# File 'lib/buildizer/buildizer.rb', line 30

def initialize(cli: nil, **kwargs)
  @cli = cli
  @options = kwargs
  @package_path = Pathname.new(ENV['BUILDIZER_PATH'] || '.').expand_path
  @work_path = Pathname.new(ENV['BUILDIZER_WORK_PATH'] || '~/.buildizer').expand_path
  @debug = ENV['BUILDIZER_DEBUG'].nil? ? options[:debug] : ENV['BUILDIZER_DEBUG'].to_s.on?
  @color = interactive? ? options[:color] : false
end

Instance Attribute Details

#debugObject (readonly)

Returns the value of attribute debug.



28
29
30
# File 'lib/buildizer/buildizer.rb', line 28

def debug
  @debug
end

#optionsObject (readonly)

Returns the value of attribute options.



25
26
27
# File 'lib/buildizer/buildizer.rb', line 25

def options
  @options
end

#package_pathObject (readonly)

Returns the value of attribute package_path.



26
27
28
# File 'lib/buildizer/buildizer.rb', line 26

def package_path
  @package_path
end

#work_pathObject (readonly)

Returns the value of attribute work_path.



27
28
29
# File 'lib/buildizer/buildizer.rb', line 27

def work_path
  @work_path
end

Instance Method Details

#buildObject



55
56
57
# File 'lib/buildizer/buildizer.rb', line 55

def build
  builder.build
end

#builderObject



75
76
77
78
79
80
81
82
83
84
85
# File 'lib/buildizer/buildizer.rb', line 75

def builder
  @builder ||= begin
    build_type = buildizer_conf['build_type']
    raise Error, error: :input_error, message: "Buildizer build_type is not defined" unless build_type
    klass = {fpm: Builder::Fpm,
             native: Builder::Native,
             patch: Builder::Patch}[build_type.to_s.to_sym]
    raise Error, error: :input_error, message: "unknown build_type '#{build_type}'" unless klass
    klass.new(self)
  end
end

#deployObject



67
68
69
# File 'lib/buildizer/buildizer.rb', line 67

def deploy
  builder.deploy
end

#interactive?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/buildizer/buildizer.rb', line 39

def interactive?
  @cli and $stdout.isatty
end

#prepareObject



51
52
53
# File 'lib/buildizer/buildizer.rb', line 51

def prepare
  builder.prepare
end

#secure_option(name, ask: nil, default: nil) ⇒ Object



43
44
45
46
47
48
49
# File 'lib/buildizer/buildizer.rb', line 43

def secure_option(name, ask: nil, default: nil)
  if interactive? and ask
    @cli.ask(ask, echo: false, default: default).tap{puts}
  else
    options.fetch(name.to_sym, default)
  end
end

#testObject

Raises:



59
60
61
62
63
64
65
# File 'lib/buildizer/buildizer.rb', line 59

def test
  raise(
    Error, message: "cannot run test shell in non interactive mode"
  ) if options[:shell] and not interactive?

  builder.test
end

#verifyObject



71
72
73
# File 'lib/buildizer/buildizer.rb', line 71

def verify
  builder.verify
end