Sha256: 5b56a0afcb2f9fa741166b846a7897acab58f309cba0684065af2ffd935e0fb5

Contents?: true

Size: 860 Bytes

Versions: 6

Compression:

Stored size: 860 Bytes

Contents

# frozen_string_literal: true

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

        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

6 entries across 6 versions & 1 rubygems

Version Path
buildkite-builder-4.2.3 lib/buildkite/pipelines/steps/group.rb
buildkite-builder-4.2.2 lib/buildkite/pipelines/steps/group.rb
buildkite-builder-4.2.1 lib/buildkite/pipelines/steps/group.rb
buildkite-builder-4.2.0 lib/buildkite/pipelines/steps/group.rb
buildkite-builder-4.1.2 lib/buildkite/pipelines/steps/group.rb
buildkite-builder-4.1.1 lib/buildkite/pipelines/steps/group.rb