gitlab-qa 8.10.2 → 8.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ce6a96929be3b7acd00c732df6b26ed29a4cc408644476d21c1958bb975ee939
4
- data.tar.gz: 6a20e2991f73d98592a07acd6784a7f859428ffabdba8978efd323b323dc16ff
3
+ metadata.gz: bee7c1ce41e9ceeeb14546a8983a5c3f90b3da4f6a3f32505bc77c08f0e484a9
4
+ data.tar.gz: dd74a1afa61040fc2110c0f3f63a381f8b1da4f07fb82b4629cdc979378ec67d
5
5
  SHA512:
6
- metadata.gz: 28919be695aed93cf5e6386be79a5dd5b94635a2f691f4f8eff7fe3766ce1ee4ad1e630307bf1f77b2cff93f3b8237f999081735aede83924e23b9b451aa5c0a
7
- data.tar.gz: 2d3f278b76595ed49d83507295042657cd4c2dc4d853ced19f466b6cb146dee6e23c30ec071af36e0a546109331c2a3938bb40cbe825059be482043550be2380
6
+ metadata.gz: d22ff4d7fa0452bac353fcd80a68f8c2bd1598f0515483c4f0a749c6ab3f225bd4d763cf17ce21f7c1a446530d254ace11a2a5c5d6a581e985572c58ce07da80
7
+ data.tar.gz: b0fe8a3cfbefcd39f971eab382171df61691d920303f8f89ab4b3a04bcb5b7ac4ff4586bb08196dbe7f1ba2f0e98ea8ce1deca4822407d22b80891e6dc306eaf
@@ -1,14 +1,14 @@
1
- ce:integrations:
1
+ ee:integrations:
2
2
  extends:
3
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
3
+ - .rules:ee-never-when-triggered-by-feature-flag-definition-change
4
4
  - .test
5
5
  - .high-capacity
6
- - .ce-variables
6
+ - .ee-variables
7
7
  - .rspec-report-opts
8
8
  variables:
9
9
  QA_SCENARIO: "Test::Integration::Integrations"
10
10
 
11
- ce:integrations-quarantine:
11
+ ee:integrations-quarantine:
12
12
  extends:
13
- - ce:integrations
13
+ - ee:integrations
14
14
  - .quarantine
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gitlab-qa (8.10.2)
4
+ gitlab-qa (8.12.0)
5
5
  activesupport (~> 6.1)
6
6
  gitlab (~> 4.18.0)
7
7
  http (~> 5.0)
@@ -0,0 +1,11 @@
1
+ # License Mode Omnibus Configuration
2
+
3
+ This configuration is used to set the License Mode in GitLab to test.
4
+
5
+ When GitLab's License Mode is set to test, GitLab will not enforce License Key encryption to activate an instance
6
+ with an Enterprise License
7
+
8
+ ## What happens?
9
+
10
+ GitLab-QA will set the environment variable `GITLAB_LICENSE_MODE=test` and set the `CUSTOMER_PORTAL_URL=<URL>` where URL
11
+ is `ENV['CUSTOMER_PORTAL_URL']` or CDot Staging (`https://customers.staging.gitlab.com`).
@@ -670,7 +670,7 @@ $ export EE_LICENSE=$(cat /path/to/GitLab.gitlab_license)
670
670
  $ gitlab-qa Test::Integration::Jira EE
671
671
  ```
672
672
 
673
- ### `Test::Integration::Integrations CE|<full image address>`
673
+ ### `Test::Integration::Integrations CE|EE|<full image address>`
674
674
 
675
675
  This scenario is intended to test the different integrations that a GitLab instance can offer, such as WebHooks to an external service, Jenkins, etc.
676
676
 
@@ -681,7 +681,7 @@ container is spun up and tests are run from it by running the
681
681
  Example:
682
682
 
683
683
  ```
684
- $ gitlab-qa Test::Integration::Integrations CE
684
+ $ gitlab-qa Test::Integration::Integrations EE
685
685
  ```
686
686
 
687
687
  ### `Test::Instance::Any CE|EE|<full image address>:nightly|latest|any_tag http://your.instance.gitlab`
@@ -43,6 +43,10 @@ module Gitlab
43
43
  raise NotImplementedError, "#{self.class.name} must specify a docker image tag as DOCKER_IMAGE_TAG"
44
44
  end
45
45
 
46
+ def start_instance
47
+ instance_no_teardown
48
+ end
49
+
46
50
  def instance(skip_teardown: false)
47
51
  instance_no_teardown do
48
52
  yield self if block_given?
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gitlab
4
+ module QA
5
+ module Component
6
+ class MockServer < Base
7
+ DOCKER_IMAGE = "thiht/smocker"
8
+ DOCKER_IMAGE_TAG = "0.18.2"
9
+
10
+ def initialize
11
+ super
12
+
13
+ @ports = %w[8080 8081]
14
+ @name = "smocker-server"
15
+ end
16
+
17
+ attr_reader :name
18
+ end
19
+ end
20
+ end
21
+ end
@@ -5,6 +5,14 @@ module Gitlab
5
5
  module Runtime
6
6
  module OmnibusConfigurations
7
7
  class DecompositionMultipleDb < Default
8
+ DATABASE_EXISTENCE_CHECK_COMMAND = <<~CMD.chomp
9
+ gitlab-psql -d gitlabhq_production_ci -c 'select 1' 2>1 > /dev/null
10
+ CMD
11
+
12
+ SCHEMA_EXISTENCE_CHECK_COMMAND = <<~CMD.chomp
13
+ gitlab-psql -d gitlabhq_production_ci -c "select schema_name from information_schema.schemata where schema_name = 'gitlab_partitions_dynamic'" | grep -q gitlab_partitions_dynamic
14
+ CMD
15
+
8
16
  def configuration
9
17
  # HACK: commenting commands out as these commands should be run *after* the first
10
18
  # reconfiguration (see first command in #exec_commands)
@@ -19,10 +27,12 @@ module Gitlab
19
27
  [
20
28
  "sed -i 's/#gitlab_rails/gitlab_rails/g' /etc/gitlab/gitlab.rb",
21
29
  "gitlab-ctl reconfigure",
22
- "gitlab-psql -c 'create database gitlabhq_production_ci owner gitlab'",
23
- "gitlab-psql -d gitlabhq_production_ci -c 'create extension btree_gist'",
24
- "gitlab-psql -d gitlabhq_production_ci -c 'create extension pg_trgm'",
25
- "gitlab-rake db:structure:load:ci",
30
+ # Create database only if it does not exist.
31
+ "#{DATABASE_EXISTENCE_CHECK_COMMAND} || gitlab-psql -c 'create database gitlabhq_production_ci owner gitlab'",
32
+ "gitlab-psql -d gitlabhq_production_ci -c 'create extension if not exists btree_gist'",
33
+ "gitlab-psql -d gitlabhq_production_ci -c 'create extension if not exists pg_trgm'",
34
+ # Load schema only if it does not exist.
35
+ "#{SCHEMA_EXISTENCE_CHECK_COMMAND} || gitlab-rake db:structure:load:ci",
26
36
  "gitlab-ctl restart"
27
37
  ].freeze
28
38
  end
@@ -7,9 +7,16 @@ module Gitlab
7
7
  class LicenseMode < Default
8
8
  def configuration
9
9
  <<~OMNIBUS
10
- gitlab_rails['env'] = { 'GITLAB_LICENSE_MODE' => 'test', 'CUSTOMER_PORTAL_URL' => 'https://customers.staging.gitlab.com' }
10
+ gitlab_rails['env'] = { 'GITLAB_LICENSE_MODE' => 'test', 'CUSTOMER_PORTAL_URL' => '#{customer_portal_url}' }
11
11
  OMNIBUS
12
12
  end
13
+
14
+ private
15
+
16
+ # Customer Portal URL that is targeted
17
+ def customer_portal_url
18
+ ENV.fetch('CUSTOMER_PORTAL_URL', 'https://customers.staging.gitlab.com')
19
+ end
13
20
  end
14
21
  end
15
22
  end
@@ -0,0 +1,88 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "parallel"
4
+
5
+ module Gitlab
6
+ module QA
7
+ module Scenario
8
+ module Test
9
+ module Integration
10
+ # Scenario type for testing importers
11
+ #
12
+ # In addition to main gitlab instance, starts another gitlab instance to act as source
13
+ # and mock server to replace all other possible import sources
14
+ #
15
+ class Import < Scenario::Template
16
+ def initialize
17
+ @source_gitlab = Component::Gitlab.new
18
+ @target_gitlab = Component::Gitlab.new
19
+ @mock_server = Component::MockServer.new
20
+ @network = "test"
21
+ end
22
+
23
+ attr_reader :source_gitlab, :target_gitlab, :mock_server, :network
24
+
25
+ def perform(release, *rspec_args)
26
+ start_mock_server
27
+ start_gitlab_instances(release)
28
+
29
+ run_specs(rspec_args)
30
+ ensure
31
+ mock_server.teardown
32
+ target_gitlab.teardown
33
+ source_gitlab.teardown
34
+ end
35
+
36
+ private
37
+
38
+ # Start mock server instance
39
+ #
40
+ # @return [void]
41
+ def start_mock_server
42
+ mock_server.tap do |server|
43
+ server.network = network
44
+
45
+ server.start_instance
46
+ end
47
+ end
48
+
49
+ # Start gitlab instance
50
+ #
51
+ # @param [Gitlab::QA::Release] release
52
+ # @return [void]
53
+ def start_gitlab_instances(release)
54
+ instances = [
55
+ { instance: source_gitlab, name: "import-source" },
56
+ { instance: target_gitlab, name: "import-target" }
57
+ ]
58
+ ::Parallel.each(instances, in_threads: 2) do |gitlab_instance|
59
+ gitlab_instance[:instance].tap do |gitlab|
60
+ gitlab.name = gitlab_instance[:name]
61
+ gitlab.network = network
62
+ gitlab.release = release
63
+ gitlab.seed_admin_token = true
64
+
65
+ gitlab.start_instance
66
+ end
67
+ end
68
+ end
69
+
70
+ # Run tests
71
+ #
72
+ # @param [Array] rspec_args
73
+ # @return [void]
74
+ def run_specs(rspec_args)
75
+ Component::Specs.perform do |specs|
76
+ specs.suite = "Test::Integration::Import"
77
+ specs.release = target_gitlab.release
78
+ specs.network = network
79
+ specs.env = { "QA_IMPORT_SOURCE_URL" => source_gitlab.address, "QA_ALLOW_LOCAL_REQUESTS" => "true" }
80
+ specs.args = [target_gitlab.address, *rspec_args]
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Gitlab
4
4
  module QA
5
- VERSION = '8.10.2'
5
+ VERSION = '8.12.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab-qa
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.10.2
4
+ version: 8.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitLab Quality
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-11-11 00:00:00.000000000 Z
11
+ date: 2022-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: climate_control
@@ -310,6 +310,7 @@ files:
310
310
  - docs/architecture.md
311
311
  - docs/configuring_omnibus.md
312
312
  - docs/how_it_works.md
313
+ - docs/omnibus_configurations/license_mode.md
313
314
  - docs/release_process.md
314
315
  - docs/run_qa_against_gdk.md
315
316
  - docs/running_against_remote_grid.md
@@ -332,6 +333,7 @@ files:
332
333
  - lib/gitlab/qa/component/ldap.rb
333
334
  - lib/gitlab/qa/component/mail_hog.rb
334
335
  - lib/gitlab/qa/component/minio.rb
336
+ - lib/gitlab/qa/component/mock_server.rb
335
337
  - lib/gitlab/qa/component/opensearch.rb
336
338
  - lib/gitlab/qa/component/postgresql.rb
337
339
  - lib/gitlab/qa/component/preprod.rb
@@ -405,6 +407,7 @@ files:
405
407
  - lib/gitlab/qa/scenario/test/integration/gitaly_cluster.rb
406
408
  - lib/gitlab/qa/scenario/test/integration/gitlab_pages.rb
407
409
  - lib/gitlab/qa/scenario/test/integration/group_saml.rb
410
+ - lib/gitlab/qa/scenario/test/integration/import.rb
408
411
  - lib/gitlab/qa/scenario/test/integration/instance_saml.rb
409
412
  - lib/gitlab/qa/scenario/test/integration/integrations.rb
410
413
  - lib/gitlab/qa/scenario/test/integration/jira.rb