Sha256: 0bf69bbef0a60cb7b4f3a401cb5ed8c213b66b7f6c801c1a9452a563c64ed754

Contents?: true

Size: 1.01 KB

Versions: 5

Compression:

Stored size: 1.01 KB

Contents

# frozen_string_literal: true

@parent_dir = File.dirname(__FILE__)
def relative_files(path)
  Dir[File.join(@parent_dir, path)]
end

# Load all the resources
relative_files('resources/*').each do |path|
  # Pipline#load includes always loads files relative to where itself, so
  # we need to remove the parent directory from this path
  res = load path.sub(@parent_dir, '')
  merge_components res.resources
end

# Load all the jobs and stick them in groups by directory
relative_files('jobs/*').each do |group_dir|
  group_name = File.basename group_dir
  group group_name do |pipeline|
    Dir[File.join(group_dir, '*')].each do |job_path|
      parent_dir = File.dirname __FILE__
      job_pipe = pipeline.load(job_path.sub(parent_dir, ''), resources: pipeline.resources)
      pipeline.merge_components job_pipe.jobs
      job_pipe.jobs.keys.each { |job_name| job job_name }
    end
  end
end

# Add all of the jobs to a super group
group :all do |pipeline|
  pipeline.jobs.keys.each do |job_name|
    jobs << job_name
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rudder-0.3.1 examples/groups/groups_pipeline.rb
rudder-0.3.0 examples/groups/groups_pipeline.rb
rudder-0.2.2 examples/groups/groups_pipeline.rb
rudder-0.2.1 examples/groups/groups_pipeline.rb
rudder-0.2.0 examples/groups/groups_pipeline.rb