Sha256: 9e03a2f177994eb9f6b2f093b06eaa3a7aff1b5805ea86fd848d136da2bb03b8

Contents?: true

Size: 1.09 KB

Versions: 1

Compression:

Stored size: 1.09 KB

Contents

module Gitlab
  module QA
    module Component
      ##
      # This class represents GitLab QA specs image that is implemented in
      # the `qa/` directory located in GitLab CE / EE repositories.
      #
      class Specs < Scenario::Template
        IMAGE = 'gitlab/gitlab-qa'.freeze

        attr_accessor :suite, :release, :network, :args

        def initialize
          @docker = Docker::Engine.new
        end

        def perform # rubocop:disable Metrics/AbcSize
          raise ArgumentError unless [suite, release].all?

          puts "Running test suite `#{suite}` for #{release.project_name}"

          @docker.run(IMAGE, release.edition_tag, suite, *args) do |command|
            command << "-t --rm --net=#{network || 'bridge'}"

            Runtime::Env.delegated.each do |env|
              command.env(env, "$#{env}")
            end

            command.volume('/var/run/docker.sock', '/var/run/docker.sock')
            command.volume(Runtime::Env.screenshots_dir, '/home/qa/tmp')
            command.name("gitlab-specs-#{Time.now.to_i}")
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gitlab-qa-0.4.0 lib/gitlab/qa/component/specs.rb