Sha256: 5aaea8f4045f03f0bee675835463975108b2e909a69927021f7c58cff9547879

Contents?: true

Size: 1.34 KB

Versions: 2

Compression:

Stored size: 1.34 KB

Contents

require 'hashr'
require 'logger'
require 'evrone/ci/common/tagged_logging'

module Evrone
  module CI
    module Worker
      class Configuration < ::Hashr

        extend Hashr::EnvDefaults

        @@null_logger = Logger.new("/dev/null")

        self.env_namespace = 'ci_worker'
        self.raise_missing_keys = true

        define amqp_url:     nil,
               run:          "docker",
               timeout:      30 * 60,
               logger:       Common::TaggedLogging.new(Logger.new STDOUT),

               tmp_dir_name: "tmp",

               workers:          1,
               path_prefix:      nil,

               docker: {
                 remote_dir: "/home/ci",
                 init:       %w{ /usr/local/bin/runsvdir -P /etc/service },
                 image:      "ci",

                 ssh: {
                   host:     nil, # used in tests
                   port:     nil, # used in tests
                   user:     "ci",
                   password: "ci"
                 },

                 create_options: nil # used in tests
               }

        def timeout
          self[:timeout].to_i
        end

        def run
          self[:run].to_sym
        end

        def path_prefix
          self[:path_prefix] || Dir.pwd
        end

        def null_logger
          @@null_logger
        end

      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
evrone-ci-worker-0.2.0.pre6 lib/evrone/ci/worker/configuration.rb
evrone-ci-worker-0.2.0.pre5 lib/evrone/ci/worker/configuration.rb