Sha256: 9a887af09e55ec10b2191d906ed7318299894ccc4c8a890b0694e092f3c95b41

Contents?: true

Size: 1.44 KB

Versions: 3

Compression:

Stored size: 1.44 KB

Contents

module Gitlab
  module QA
    module Scenario
      module Test
        module Instance
          ##
          # Base class to be used to define deployment environment scenarios
          #
          class DeploymentBase < Scenario::Template
            def perform(release_name = nil, *rspec_args)
              Runtime::Env.require_no_license!

              release_name ||= '--'

              case release_name
              when '--'
                rspec_args.unshift('--')
                release = deployment_component.release
              else
                release = Release.new(release_name)
              end

              if release.dev_gitlab_org?
                Docker::Command.execute(
                  [
                    'login',
                    '--username gitlab-qa-bot',
                    %(--password "#{Runtime::Env.dev_access_token_variable}"),
                    Release::DEV_REGISTRY
                  ]
                )
              end

              Component::Specs.perform do |specs|
                specs.suite = 'Test::Instance::All'
                specs.release = release
                specs.args = [deployment_component::ADDRESS, *rspec_args]
              end
            end

            def deployment_component
              raise NotImplementedError, 'Please define the Component for the deployment environment associated with this scenario.'
            end
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
gitlab-qa-4.0.2 lib/gitlab/qa/scenario/test/instance/deployment_base.rb
gitlab-qa-4.0.1 lib/gitlab/qa/scenario/test/instance/deployment_base.rb
gitlab-qa-4.0.0 lib/gitlab/qa/scenario/test/instance/deployment_base.rb