variables.rb 611 字节
Newer Older
1 2 3 4 5 6 7 8 9
module Gitlab
  module Ci
    module Build
      module Policy
        class Variables < Policy::Specification
          def initialize(expressions)
            @expressions = Array(expressions)
          end

10
          def satisfied_by?(pipeline, seed)
11 12
            variables = seed.to_resource
              .evaluable_variables.to_hash
13

14 15
            statements = @expressions.map do |statement|
              ::Gitlab::Ci::Pipeline::Expression::Statement
16
                .new(statement, variables)
17 18
            end

19
            statements.any?(&:truthful?)
20 21 22 23 24 25
          end
        end
      end
    end
  end
end