Sha256: 453d30dfc7dd753ba6f4b859d284330e6291c8dffa380aa8e6437365b75a4bce

Contents?: true

Size: 860 Bytes

Versions: 2

Compression:

Stored size: 860 Bytes

Contents

# frozen_string_literal: true

module Buildkite
  module Pipelines
    module Steps
      class Group < Abstract
        attribute :depends_on, append: true
        attribute :key
        attribute :label

        attr_reader :steps

        def initialize(pipeline, **args)
          @pipeline = pipeline
          @context = StepContext.new(self, **args)
          @steps = Buildkite::Builder::StepCollection.new
        end

        def method_missing(method_name, ...)
          if @pipeline.dsl.respond_to?(method_name)
            @pipeline.dsl.public_send(method_name, ...)
          else
            super
          end
        end

        def respond_to_missing?(...)
          @pipeline.dsl.respond_to?(...) || super
        end

        def to_h
          super.merge(group: nil, steps: steps.to_definition)
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
buildkite-builder-4.1.0 lib/buildkite/pipelines/steps/group.rb
buildkite-builder-4.0.0 lib/buildkite/pipelines/steps/group.rb