Sha256: b8c03a734c29f837ce0a5c11de9f4393a0f5d3ec7816f8852e635374203f1ac6

Contents?: true

Size: 1.44 KB

Versions: 9

Compression:

Stored size: 1.44 KB

Contents

class DeploySpec
  class FileSystem < DeploySpec
    include PypiDiscovery
    include RubygemsDiscovery
    include CapistranoDiscovery
    include BundlerDiscovery

    def initialize(app_dir, env)
      @app_dir = Pathname(app_dir)
      @env = env
    end

    def cacheable
      DeploySpec.new(cacheable_config)
    end

    private

    def cacheable_config
      (config || {}).deep_merge(
        'ci' => {'hide' => hidden_statuses, 'allow_failures' => soft_failing_statuses},
        'machine' => {'environment' => machine_env, 'directory' => directory},
        'review' => {
          'checklist' => review_checklist,
          'monitoring' => review_monitoring,
          'checks' => review_checks,
        },
        'dependencies' => {'override' => dependencies_steps},
        'deploy' => {'override' => deploy_steps, 'variables' => deploy_variables.map(&:to_h)},
        'rollback' => {'override' => rollback_steps},
        'fetch' => fetch_deployed_revision_steps,
        'tasks' => cacheable_tasks,
      )
    end

    def cacheable_tasks
      (config('tasks') || {}).map { |k, c| [k, coerce_task_definition(c)] }.to_h
    end

    def config(*)
      @config ||= load_config
      super
    end

    def load_config
      read_config(file("shipit.#{@env}.yml")) || read_config(file('shipit.yml'))
    end

    def read_config(path)
      SafeYAML.load(path.read) if path.exist?
    end

    def file(path)
      @app_dir.join(path)
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
shipit-engine-0.4.2 app/models/deploy_spec/file_system.rb
shipit-engine-0.4.1 app/models/deploy_spec/file_system.rb
shipit-engine-0.4.0 app/models/deploy_spec/file_system.rb
shipit-engine-0.3.1 app/models/deploy_spec/file_system.rb
shipit-engine-0.3.0 app/models/deploy_spec/file_system.rb
shipit-engine-0.2.3 app/models/deploy_spec/file_system.rb
shipit-engine-0.2.2 app/models/deploy_spec/file_system.rb
shipit-engine-0.2.1 app/models/deploy_spec/file_system.rb
shipit-engine-0.2.0 app/models/deploy_spec/file_system.rb