class Burner::Pipeline
The root package. A Pipeline
contains the job configurations along with the steps. The steps reference jobs and tell you the order of the jobs to run. If steps is nil then all jobs will execute in their declared order.
Attributes
steps[R]
Public Class Methods
new(jobs: [], steps: nil)
click to toggle source
# File lib/burner/pipeline.rb, line 24 def initialize(jobs: [], steps: nil) @steps = JobSet .new(jobs) .jobs(steps) .map { |job| Step.new(job) } end
Public Instance Methods
execute(output: Output.new, payload: Payload.new)
click to toggle source
The main entry-point for kicking off a pipeline.
# File lib/burner/pipeline.rb, line 32 def execute(output: Output.new, payload: Payload.new) output.write("Pipeline started with #{steps.length} step(s)") output_params(payload.params, output) output.ruler time_in_seconds = Benchmark.measure do steps.each do |step| step.perform(output, payload) if payload.halt_pipeline? output.detail('Payload was halted, ending pipeline.') break end end end.real.round(3) output.ruler output.write("Pipeline ended, took #{time_in_seconds} second(s) to complete") payload end
Private Instance Methods
output_params(params, output)
click to toggle source
# File lib/burner/pipeline.rb, line 57 def output_params(params, output) if params.any? output.write('Parameters:') else output.write('No parameters passed in.') end params.each { |key, value| output.detail("#{key}: #{value}") } end