initial_parsing

in lib/gitlab_ci_yaml_processor.rb [40:63]


  def initial_parsing
    @before_script = @config[:before_script] || []
    @image = @config[:image]
    @services = @config[:services]
    @stages = @config[:stages] || @config[:types]
    @variables = @config[:variables] || {}
    @config.except!(*ALLOWED_YAML_KEYS)

    
    @config.each do |name, param|
      raise ValidationError, "Unknown parameter: #{name}" unless param.is_a?(Hash) && param.has_key?(:script)
    end

    unless @config.values.any?{|job| job.is_a?(Hash)}
      raise ValidationError, "Please define at least one job"
    end

    @jobs = {}
    @config.each do |key, job|
      stage = job[:stage] || job[:type] || DEFAULT_STAGE
      @jobs[key] = { stage: stage }.merge(job)
    end
  end