gitlab-qa 6.22.0 → 7.0.2

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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.gitlab-ci.yml +32 -31
  3. data/docs/configuring_omnibus.md +208 -0
  4. data/docs/what_tests_can_be_run.md +46 -8
  5. data/gitlab-qa.gemspec +6 -4
  6. data/lib/gitlab/qa.rb +7 -0
  7. data/lib/gitlab/qa/component/base.rb +2 -2
  8. data/lib/gitlab/qa/component/elasticsearch.rb +1 -1
  9. data/lib/gitlab/qa/component/gitlab.rb +35 -24
  10. data/lib/gitlab/qa/component/internet_tunnel.rb +4 -1
  11. data/lib/gitlab/qa/component/jira.rb +1 -1
  12. data/lib/gitlab/qa/component/ldap.rb +1 -1
  13. data/lib/gitlab/qa/component/mail_hog.rb +1 -1
  14. data/lib/gitlab/qa/component/minio.rb +3 -11
  15. data/lib/gitlab/qa/component/postgresql.rb +1 -1
  16. data/lib/gitlab/qa/component/saml.rb +1 -1
  17. data/lib/gitlab/qa/component/specs.rb +10 -2
  18. data/lib/gitlab/qa/docker/engine.rb +37 -6
  19. data/lib/gitlab/qa/report/test_result.rb +5 -1
  20. data/lib/gitlab/qa/runner.rb +57 -5
  21. data/lib/gitlab/qa/runtime/env.rb +2 -0
  22. data/lib/gitlab/qa/runtime/omnibus_configuration.rb +70 -0
  23. data/lib/gitlab/qa/runtime/omnibus_configurations/default.rb +25 -0
  24. data/lib/gitlab/qa/runtime/omnibus_configurations/object_storage.rb +48 -0
  25. data/lib/gitlab/qa/runtime/omnibus_configurations/packages.rb +17 -0
  26. data/lib/gitlab/qa/scenario/cli_commands.rb +3 -3
  27. data/lib/gitlab/qa/scenario/test/instance/relative_url.rb +1 -3
  28. data/lib/gitlab/qa/scenario/test/instance/repository_storage.rb +1 -1
  29. data/lib/gitlab/qa/scenario/test/integration/actioncable.rb +1 -3
  30. data/lib/gitlab/qa/scenario/test/integration/geo.rb +4 -5
  31. data/lib/gitlab/qa/scenario/test/integration/gitaly_cluster.rb +4 -5
  32. data/lib/gitlab/qa/scenario/test/integration/group_saml.rb +1 -1
  33. data/lib/gitlab/qa/scenario/test/integration/instance_saml.rb +1 -1
  34. data/lib/gitlab/qa/scenario/test/integration/kubernetes.rb +1 -1
  35. data/lib/gitlab/qa/scenario/test/integration/ldap.rb +1 -4
  36. data/lib/gitlab/qa/scenario/test/integration/ldap_no_server.rb +1 -1
  37. data/lib/gitlab/qa/scenario/test/integration/ldap_no_tls.rb +1 -1
  38. data/lib/gitlab/qa/scenario/test/integration/ldap_tls.rb +1 -1
  39. data/lib/gitlab/qa/scenario/test/integration/mattermost.rb +1 -1
  40. data/lib/gitlab/qa/scenario/test/integration/mtls.rb +2 -2
  41. data/lib/gitlab/qa/scenario/test/integration/smtp.rb +1 -1
  42. data/lib/gitlab/qa/scenario/test/integration/ssh_tunnel.rb +1 -1
  43. data/lib/gitlab/qa/version.rb +1 -1
  44. metadata +12 -9
  45. data/lib/gitlab/qa/scenario/test/integration/object_storage.rb +0 -64
  46. data/lib/gitlab/qa/scenario/test/integration/packages.rb +0 -36
@@ -21,7 +21,7 @@ module Gitlab
21
21
  tunnel_registry.gitlab_hostname = gitlab.hostname
22
22
  tunnel_registry.network = 'test'
23
23
 
24
- gitlab.omnibus_config = <<~OMNIBUS
24
+ gitlab.omnibus_configuration << <<~OMNIBUS
25
25
  external_url '#{tunnel_gitlab.url}';
26
26
  nginx['listen_port'] = 80;
27
27
  nginx['listen_https'] = false;
@@ -27,7 +27,7 @@ module Gitlab
27
27
  end
28
28
 
29
29
  def ldap_servers_omnibus_config
30
- config = YAML.safe_load <<~CFG
30
+ YAML.safe_load <<~CFG
31
31
  main:
32
32
  label: LDAP
33
33
  host: #{ldap_hostname}
@@ -44,9 +44,6 @@ module Gitlab
44
44
  external_groups: ''
45
45
  sync_ssh_keys: false
46
46
  CFG
47
-
48
- # Quotes get eaten up when the string is set in the environment
49
- config.to_s.gsub("\"", "\\\"")
50
47
  end
51
48
 
52
49
  def ldap_hostname
@@ -12,7 +12,7 @@ module Gitlab
12
12
  end
13
13
 
14
14
  def configure_omnibus(gitlab)
15
- gitlab.omnibus_config = <<~OMNIBUS
15
+ gitlab.omnibus_configuration << <<~OMNIBUS
16
16
  gitlab_rails['ldap_enabled'] = true;
17
17
  gitlab_rails['ldap_servers'] = #{ldap_servers_omnibus_config};
18
18
  gitlab_rails['ldap_sync_worker_cron'] = '* * * * *';
@@ -15,7 +15,7 @@ module Gitlab
15
15
  end
16
16
 
17
17
  def configure_omnibus(gitlab)
18
- gitlab.omnibus_config = <<~OMNIBUS
18
+ gitlab.omnibus_configuration << <<~OMNIBUS
19
19
  gitlab_rails['ldap_enabled'] = true;
20
20
  gitlab_rails['ldap_servers'] = #{ldap_servers_omnibus_config};
21
21
  gitlab_rails['ldap_sync_worker_cron'] = '* * * * *';
@@ -15,7 +15,7 @@ module Gitlab
15
15
  end
16
16
 
17
17
  def configure_omnibus(gitlab)
18
- gitlab.omnibus_config = <<~OMNIBUS
18
+ gitlab.omnibus_configuration << <<~OMNIBUS
19
19
  gitlab_rails['ldap_enabled'] = true;
20
20
  gitlab_rails['ldap_servers'] = #{ldap_servers_omnibus_config};
21
21
  letsencrypt['enable'] = false;
@@ -13,7 +13,7 @@ module Gitlab
13
13
  mattermost_external_url = "http://#{mattermost_hostname}"
14
14
 
15
15
  gitlab.add_network_alias(mattermost_hostname)
16
- gitlab.omnibus_config = <<~OMNIBUS
16
+ gitlab.omnibus_configuration << <<~OMNIBUS
17
17
  mattermost_external_url '#{mattermost_external_url}';
18
18
  OMNIBUS
19
19
 
@@ -21,7 +21,7 @@ module Gitlab
21
21
  gitaly.network = @network
22
22
  gitaly.skip_availability_check = true
23
23
 
24
- gitaly.omnibus_config = gitaly_omnibus
24
+ gitaly.omnibus_configuration << gitaly_omnibus
25
25
  gitaly.gitaly_tls
26
26
 
27
27
  gitaly.instance do
@@ -30,7 +30,7 @@ module Gitlab
30
30
  gitlab.name = @gitlab_name
31
31
  gitlab.network = @network
32
32
 
33
- gitlab.omnibus_config = gitlab_omnibus
33
+ gitlab.omnibus_configuration << gitlab_omnibus
34
34
  gitlab.tls = true
35
35
 
36
36
  gitlab.instance do
@@ -14,7 +14,7 @@ module Gitlab
14
14
  attr_reader :gitlab_name, :spec_suite
15
15
 
16
16
  def configure_omnibus(gitlab, mail_hog)
17
- gitlab.omnibus_config = <<~OMNIBUS
17
+ gitlab.omnibus_configuration << <<~OMNIBUS
18
18
  gitlab_rails['smtp_enable'] = true;
19
19
  gitlab_rails['smtp_address'] = '#{mail_hog.hostname}';
20
20
  gitlab_rails['smtp_port'] = 1025;
@@ -22,7 +22,7 @@ module Gitlab
22
22
  tunnel_registry.gitlab_hostname = gitlab.hostname
23
23
  tunnel_registry.network = 'test'
24
24
 
25
- gitlab.omnibus_config = <<~OMNIBUS
25
+ gitlab.omnibus_configuration << <<~OMNIBUS
26
26
  external_url '#{tunnel_gitlab.url}';
27
27
  nginx['listen_port'] = 80;
28
28
  nginx['listen_https'] = false;
@@ -1,5 +1,5 @@
1
1
  module Gitlab
2
2
  module QA
3
- VERSION = '6.22.0'.freeze
3
+ VERSION = '7.0.2'.freeze
4
4
  end
5
5
  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: 6.22.0
4
+ version: 7.0.2
5
5
  platform: ruby
6
6
  authors:
7
- - Grzegorz Bizon
7
+ - GitLab Quality
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-02-24 00:00:00.000000000 Z
11
+ date: 2021-03-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: climate_control
@@ -184,17 +184,17 @@ dependencies:
184
184
  requirements:
185
185
  - - '='
186
186
  - !ruby/object:Gem::Version
187
- version: 1.5.6
187
+ version: 1.5.7
188
188
  type: :runtime
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - '='
193
193
  - !ruby/object:Gem::Version
194
- version: 1.5.6
194
+ version: 1.5.7
195
195
  description:
196
196
  email:
197
- - grzesiek.bizon@gmail.com
197
+ - gitlab-qa@gmail.com
198
198
  executables:
199
199
  - gitlab-qa
200
200
  - gitlab-qa-report
@@ -221,6 +221,7 @@ files:
221
221
  - bin/slack
222
222
  - docs/README.md
223
223
  - docs/architecture.md
224
+ - docs/configuring_omnibus.md
224
225
  - docs/how_it_works.md
225
226
  - docs/release_process.md
226
227
  - docs/run_qa_against_gdk.md
@@ -273,6 +274,10 @@ files:
273
274
  - lib/gitlab/qa/reporter.rb
274
275
  - lib/gitlab/qa/runner.rb
275
276
  - lib/gitlab/qa/runtime/env.rb
277
+ - lib/gitlab/qa/runtime/omnibus_configuration.rb
278
+ - lib/gitlab/qa/runtime/omnibus_configurations/default.rb
279
+ - lib/gitlab/qa/runtime/omnibus_configurations/object_storage.rb
280
+ - lib/gitlab/qa/runtime/omnibus_configurations/packages.rb
276
281
  - lib/gitlab/qa/runtime/scenario.rb
277
282
  - lib/gitlab/qa/runtime/token_finder.rb
278
283
  - lib/gitlab/qa/scenario/actable.rb
@@ -305,8 +310,6 @@ files:
305
310
  - lib/gitlab/qa/scenario/test/integration/ldap_tls.rb
306
311
  - lib/gitlab/qa/scenario/test/integration/mattermost.rb
307
312
  - lib/gitlab/qa/scenario/test/integration/mtls.rb
308
- - lib/gitlab/qa/scenario/test/integration/object_storage.rb
309
- - lib/gitlab/qa/scenario/test/integration/packages.rb
310
313
  - lib/gitlab/qa/scenario/test/integration/praefect.rb
311
314
  - lib/gitlab/qa/scenario/test/integration/saml.rb
312
315
  - lib/gitlab/qa/scenario/test/integration/smtp.rb
@@ -330,7 +333,7 @@ files:
330
333
  - tls_certificates/gitlab/gitlab.test.crt
331
334
  - tls_certificates/gitlab/gitlab.test.csr
332
335
  - tls_certificates/gitlab/gitlab.test.key
333
- homepage: http://about.gitlab.com
336
+ homepage: http://about.gitlab.com/
334
337
  licenses:
335
338
  - MIT
336
339
  metadata: {}
@@ -1,64 +0,0 @@
1
- require 'yaml'
2
-
3
- module Gitlab
4
- module QA
5
- module Scenario
6
- module Test
7
- module Integration
8
- class ObjectStorage < Scenario::Template
9
- include Scenario::CLICommands
10
-
11
- TYPES = %w[artifacts external_diffs lfs uploads packages dependency_proxy].freeze
12
-
13
- def perform(release, *rspec_args)
14
- Component::Gitlab.perform do |gitlab|
15
- gitlab.release = release
16
- gitlab.name = 'gitlab-object-storage'
17
- gitlab.network = 'test'
18
-
19
- Component::Minio.perform do |minio|
20
- minio.network = 'test'
21
-
22
- TYPES.each do |bucket_name|
23
- minio.add_bucket("#{bucket_name}-bucket")
24
- end
25
-
26
- gitlab.omnibus_config = object_storage_config(minio)
27
- gitlab.exec_commands = git_lfs_install_commands
28
-
29
- minio.instance do
30
- gitlab.instance do
31
- puts 'Running object storage specs!'
32
-
33
- Component::Specs.perform do |specs|
34
- specs.suite = 'Test::Integration::ObjectStorage'
35
- specs.release = gitlab.release
36
- specs.network = gitlab.network
37
- specs.args = [gitlab.address, *rspec_args]
38
- end
39
- end
40
- end
41
- end
42
- end
43
- end
44
-
45
- def object_storage_config(minio)
46
- TYPES.map do |object_type|
47
- <<~OMNIBUS
48
- gitlab_rails['#{object_type}_enabled'] = true;
49
- gitlab_rails['#{object_type}_storage_path'] = '/var/opt/gitlab/gitlab-rails/shared/#{object_type}';
50
- gitlab_rails['#{object_type}_object_store_enabled'] = true;
51
- gitlab_rails['#{object_type}_object_store_remote_directory'] = '#{object_type}-bucket';
52
- gitlab_rails['#{object_type}_object_store_background_upload'] = false;
53
- gitlab_rails['#{object_type}_object_store_direct_upload'] = true;
54
- gitlab_rails['#{object_type}_object_store_proxy_download'] = true;
55
- gitlab_rails['#{object_type}_object_store_connection'] = #{minio.to_config};
56
- OMNIBUS
57
- end.join("\n")
58
- end
59
- end
60
- end
61
- end
62
- end
63
- end
64
- end
@@ -1,36 +0,0 @@
1
- module Gitlab
2
- module QA
3
- module Scenario
4
- module Test
5
- module Integration
6
- class Packages < Scenario::Template
7
- def perform(release, *rspec_args)
8
- Component::Gitlab.perform do |gitlab|
9
- gitlab.release = QA::Release.new(release)
10
- gitlab.name = 'gitlab-packages'
11
- gitlab.network = 'test'
12
- gitlab.omnibus_config = <<~OMNIBUS
13
- gitlab_rails['packages_enabled'] = true;
14
- OMNIBUS
15
-
16
- gitlab.instance do
17
- puts "Running packages specs!"
18
-
19
- rspec_args << "--" unless rspec_args.include?('--')
20
- rspec_args << %w[--tag packages]
21
-
22
- Component::Specs.perform do |specs|
23
- specs.suite = 'Test::Instance::All'
24
- specs.release = gitlab.release
25
- specs.network = gitlab.network
26
- specs.args = [gitlab.address, *rspec_args]
27
- end
28
- end
29
- end
30
- end
31
- end
32
- end
33
- end
34
- end
35
- end
36
- end