Class: Citrus::Core::ExecuteBuild

Inherits:
Object
  • Object
show all
Includes:
Publisher
Defined in:
lib/citrus/core/execute_build.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Publisher

#add_subscriber, #publish

Constructor Details

#initialize(workspace_builder, configuration_loader = ConfigurationLoader.new, test_runner = TestRunner.new) ⇒ ExecuteBuild

Returns a new instance of ExecuteBuild.



8
9
10
11
12
# File 'lib/citrus/core/execute_build.rb', line 8

def initialize(workspace_builder, configuration_loader = ConfigurationLoader.new, test_runner = TestRunner.new)
  @workspace_builder    = workspace_builder
  @configuration_loader = configuration_loader
  @test_runner          = test_runner
end

Instance Attribute Details

#configuration_loaderObject (readonly)

Returns the value of attribute configuration_loader.



6
7
8
# File 'lib/citrus/core/execute_build.rb', line 6

def configuration_loader
  @configuration_loader
end

#test_runnerObject (readonly)

Returns the value of attribute test_runner.



6
7
8
# File 'lib/citrus/core/execute_build.rb', line 6

def test_runner
  @test_runner
end

#workspace_builderObject (readonly)

Returns the value of attribute workspace_builder.



6
7
8
# File 'lib/citrus/core/execute_build.rb', line 6

def workspace_builder
  @workspace_builder
end

Instance Method Details

#call(build) ⇒ Object



14
15
16
17
18
19
20
21
22
23
# File 'lib/citrus/core/execute_build.rb', line 14

def call(build)
  workspace_path = workspace_builder.create_workspace(build)
  configuration  = configuration_loader.load_from_path(workspace_path)
  notify_build_start(build)
  result = test_runner.start(build, configuration, workspace_path)
  notify_build_result(build, result)
rescue ConfigurationError => error
  notify_build_abort(build, error)
  raise
end