Sha256: bdf1367789b6d7f739a84ffdc283ac11f27a18bee67acbf51e2bf26262b0b25a

Contents?: true

Size: 1.31 KB

Versions: 1

Compression:

Stored size: 1.31 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),

               work_dir_name:   "work",
               repo_dir_name:   "repo",
               tmp_dir_name:    "tmp",

               sleep_after_job: 5,

               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 null_logger
          @@null_logger
        end

      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

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