Class: Gitlab::QA::Scenario::Test::Omnibus::UpdateToNext

Inherits:
UpdateFromPrevious show all
Defined in:
lib/gitlab/qa/scenario/test/omnibus/update_to_next.rb

Instance Attribute Summary

Attributes inherited from UpdateFromPrevious

#rspec_args

Instance Method Summary collapse

Methods inherited from UpdateFromPrevious

#pre_seeding_environment_actions, #seeding_suite_args

Methods inherited from Gitlab::QA::Scenario::Template

perform

Instance Method Details

#perform(release, current_version, from_edition = nil, *rspec_args) ⇒ void

This method returns an undefined value.

Test upgrade from development version to next stable release

perform(gitlab-ee:dev-tag, 17.8.2-pre)

> will perform upgrade gitlab-ee:dev-tag -> 17.9.2

Parameters:

  • release (String)

    current release docker image with development changes

  • current_version (String)

    current gitlab version associated with docker image

  • from_edition (String) (defaults to: nil)

    gitlab edition to update from

  • *rspec_args (Array)

    rspec arguments



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/gitlab/qa/scenario/test/omnibus/update_to_next.rb', line 21

def perform(release, current_version, from_edition = nil, *rspec_args)
  # When from_edition isn't actually passed but RSpec args arg passed with `-- rspec_args...`,
  # from_edition is wrongly set to `--`, so we fix that here.
  if from_edition == "--"
    rspec_args.prepend('--')
    from_edition = nil
  end

  @current_release = QA::Release.new(release)
  @upgrade_path = Support::GitlabUpgradePath.new(
    current_version,
    'from_patch',
    from_edition || @current_release.edition
  ).fetch
  @rspec_args = rspec_args

  # Key difference to UpdateFromPrevious: current_release comes first in the upgrade path
  upgrade_info = "(#{current_version}) #{[current_release, *upgrade_path].join(' => ')}".bright
  Runtime::Logger.info("Performing gitlab update: #{upgrade_info}")

  update(rspec_args)
end