class CircleCI::Parallel::Environment

@api private

Public Instance Methods

clean() click to toggle source
# File lib/circleci/parallel/environment.rb, line 39
def clean
  FileUtils.rmtree(WORK_DIR) if Dir.exist?(WORK_DIR)
end
configuration() click to toggle source
# File lib/circleci/parallel/environment.rb, line 14
def configuration
  @configuration ||= Configuration.new
end
configure() { |configuration| ... } click to toggle source
# File lib/circleci/parallel/environment.rb, line 18
def configure
  yield configuration
end
current_build() click to toggle source
# File lib/circleci/parallel/environment.rb, line 22
def current_build
  @current_build ||= Build.new(ENV['CIRCLE_BUILD_NUM'].to_i, ENV['CIRCLE_NODE_TOTAL'].to_i)
end
current_node() click to toggle source
# File lib/circleci/parallel/environment.rb, line 26
def current_node
  @current_node ||= Node.new(current_build, ENV['CIRCLE_NODE_INDEX'].to_i)
end
puts(*args) click to toggle source
# File lib/circleci/parallel/environment.rb, line 35
def puts(*args)
  Kernel.puts(*args) unless configuration.silent
end
sync() click to toggle source
# File lib/circleci/parallel/environment.rb, line 30
def sync
  validate!
  task.run
end

Private Instance Methods

master_task() click to toggle source
# File lib/circleci/parallel/environment.rb, line 59
def master_task
  klass = configuration.mock_mode ? Task::MockMaster : Task::Master
  klass.new(current_node, configuration.master_node_configuration)
end
slave_task() click to toggle source
# File lib/circleci/parallel/environment.rb, line 64
def slave_task
  klass = configuration.mock_mode ? Task::MockSlave : Task::Slave
  klass.new(current_node, configuration.slave_node_configuration)
end
task() click to toggle source
# File lib/circleci/parallel/environment.rb, line 55
def task
  @task ||= current_node.master? ? master_task : slave_task
end
validate!() click to toggle source
# File lib/circleci/parallel/environment.rb, line 45
def validate!
  raise 'The current environment is not on CircleCI.' unless ENV['CIRCLECI']

  unless ENV['CIRCLE_NODE_TOTAL']
    warn 'Environment variable CIRCLE_NODE_TOTAL is not set. ' \
         'Maybe you forgot adding `parallel: true` to your circle.yml? ' \
         'https://circleci.com/docs/parallel-manual-setup/'
  end
end