gitlab-qa 7.24.6 → 7.26.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/.gitlab/ci/jobs/actioncable.gitlab-ci.yml +41 -0
  3. data/.gitlab/ci/jobs/base.gitlab-ci.yml +281 -0
  4. data/.gitlab/ci/jobs/cloud_activation.gitlab-ci.yml +30 -0
  5. data/.gitlab/ci/jobs/custom_parallel.gitlab-ci.yml +21 -0
  6. data/.gitlab/ci/jobs/ee_previous_to_ce_update.gitlab-ci.yml +18 -0
  7. data/.gitlab/ci/jobs/elasticsearch.gitlab-ci.yml +20 -0
  8. data/.gitlab/ci/jobs/geo.gitlab-ci.yml +18 -0
  9. data/.gitlab/ci/jobs/gitaly_cluster.gitlab-ci.yml +45 -0
  10. data/.gitlab/ci/jobs/group_saml.gitlab-ci.yml +20 -0
  11. data/.gitlab/ci/jobs/instance.gitlab-ci.yml +55 -0
  12. data/.gitlab/ci/jobs/instance_saml.gitlab-ci.yml +41 -0
  13. data/.gitlab/ci/jobs/integrations.gitlab-ci.yml +14 -0
  14. data/.gitlab/ci/jobs/jira.gitlab-ci.yml +41 -0
  15. data/.gitlab/ci/jobs/large_setup.gitlab-ci.yml +19 -0
  16. data/.gitlab/ci/jobs/ldap_no_server.gitlab-ci.yml +20 -0
  17. data/.gitlab/ci/jobs/ldap_no_tls.gitlab-ci.yml +41 -0
  18. data/.gitlab/ci/jobs/ldap_tls.gitlab-ci.yml +41 -0
  19. data/.gitlab/ci/jobs/mattermost.gitlab-ci.yml +41 -0
  20. data/.gitlab/ci/jobs/mtls.gitlab-ci.yml +17 -0
  21. data/.gitlab/ci/jobs/object_storage.gitlab-ci.yml +49 -0
  22. data/.gitlab/ci/jobs/object_storage_aws.gitlab-ci.yml +25 -0
  23. data/.gitlab/ci/jobs/object_storage_gcs.gitlab-ci.yml +23 -0
  24. data/.gitlab/ci/jobs/object_storage_registry_tls.gitlab-ci.yml +41 -0
  25. data/.gitlab/ci/jobs/omnibus_image.gitlab-ci.yml +15 -0
  26. data/.gitlab/ci/jobs/omnibus_upgrade.gitlab-ci.yml +28 -0
  27. data/.gitlab/ci/jobs/packages.gitlab-ci.yml +25 -0
  28. data/.gitlab/ci/jobs/praefect.gitlab-ci.yml +71 -0
  29. data/.gitlab/ci/jobs/registry.gitlab-ci.yml +41 -0
  30. data/.gitlab/ci/jobs/registry_with_cdn.gitlab-ci.yml +43 -0
  31. data/.gitlab/ci/jobs/relative_url.gitlab-ci.yml +65 -0
  32. data/.gitlab/ci/jobs/repository_storage.gitlab-ci.yml +41 -0
  33. data/.gitlab/ci/jobs/sanity_framework.gitlab-ci.yml +24 -0
  34. data/.gitlab/ci/jobs/service_ping_disabled.gitlab-ci.yml +19 -0
  35. data/.gitlab/ci/jobs/smtp.gitlab-ci.yml +19 -0
  36. data/.gitlab/ci/jobs/staging.gitlab-ci.yml +10 -0
  37. data/.gitlab/ci/jobs/update.gitlab-ci.yml +60 -0
  38. data/.gitlab/ci/rules.gitlab-ci.yml +19 -6
  39. data/.gitlab/issue_templates/Default.md +2 -0
  40. data/.gitlab/merge_request_templates/Default.md +2 -0
  41. data/.gitlab-ci.yml +110 -1333
  42. data/bin/notify_upstream +98 -0
  43. data/docs/what_tests_can_be_run.md +15 -0
  44. data/lib/gitlab/qa/component/base.rb +0 -1
  45. data/lib/gitlab/qa/component/gitlab.rb +48 -1
  46. data/lib/gitlab/qa/component/staging_ref.rb +1 -0
  47. data/lib/gitlab/qa/docker/engine.rb +4 -0
  48. data/lib/gitlab/qa/release.rb +1 -1
  49. data/lib/gitlab/qa/report/gitlab_issue_client.rb +12 -0
  50. data/lib/gitlab/qa/report/relate_failure_issue.rb +17 -2
  51. data/lib/gitlab/qa/report/test_result.rb +8 -0
  52. data/lib/gitlab/qa/report/update_screenshot_path.rb +28 -6
  53. data/lib/gitlab/qa/runner.rb +17 -0
  54. data/lib/gitlab/qa/runtime/env.rb +14 -1
  55. data/lib/gitlab/qa/runtime/omnibus_configuration.rb +1 -1
  56. data/lib/gitlab/qa/runtime/omnibus_configurations/ci_decomposition.rb +32 -0
  57. data/lib/gitlab/qa/scenario/test/instance/deployment_base.rb +5 -0
  58. data/lib/gitlab/qa/scenario/test/instance/staging_ref_geo.rb +27 -0
  59. data/lib/gitlab/qa/scenario/test/integration/geo.rb +2 -1
  60. data/lib/gitlab/qa/scenario/test/integration/gitaly_cluster.rb +2 -0
  61. data/lib/gitlab/qa/scenario/test/integration/mattermost.rb +5 -1
  62. data/lib/gitlab/qa/scenario/test/integration/mtls.rb +1 -0
  63. data/lib/gitlab/qa/scenario/test/integration/registry_with_cdn.rb +42 -0
  64. data/lib/gitlab/qa/scenario/test/omnibus/update.rb +1 -0
  65. data/lib/gitlab/qa/version.rb +1 -1
  66. data/lib/gitlab/qa.rb +3 -0
  67. data/scripts/generate-qa-jobs.rb +72 -0
  68. data/support/data/admin_access_token_seed.rb +24 -0
  69. data/support/data/license_usage_seed.rb +75 -0
  70. metadata +45 -3
  71. data/bin/notify_upstream_commit +0 -61
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gitlab
4
+ module QA
5
+ module Scenario
6
+ module Test
7
+ module Integration
8
+ class RegistryWithCDN < Scenario::Template
9
+ def perform(release, *rspec_args)
10
+ Runtime::Env.require_gcs_with_cdn_environment!
11
+
12
+ Component::Gitlab.perform do |gitlab|
13
+ gitlab.release = release
14
+ gitlab.network = 'test'
15
+ gitlab.name = 'gitlab'
16
+ sign_url_key_path = gitlab.copy_key_file('GOOGLE_CDN_SIGNURL_KEY')
17
+ cdn_gcloud_path = gitlab.copy_key_file('GOOGLE_CDN_JSON_KEY')
18
+
19
+ gitlab.omnibus_configuration << <<~OMNIBUS
20
+ external_url 'http://#{gitlab.name}.#{gitlab.network}';
21
+ registry_external_url 'http://#{gitlab.name}.#{gitlab.network}:5050';
22
+
23
+ registry['middleware'] = { 'storage' => [{ 'name' => 'googlecdn', 'options' => { 'baseurl' => '#{Runtime::Env.google_cdn_load_balancer}', 'privatekey' => '#{sign_url_key_path}', 'keyname' => '#{Runtime::Env.google_cdn_signurl_key_name}' } }] }
24
+ registry['storage'] = { 'gcs' => { 'bucket' => '#{Runtime::Env.gcs_cdn_bucket_name}', 'keyfile' => '#{cdn_gcloud_path}' } }
25
+ OMNIBUS
26
+
27
+ gitlab.instance do
28
+ Component::Specs.perform do |specs|
29
+ specs.suite = 'Test::Integration::RegistryWithCDN'
30
+ specs.release = gitlab.release
31
+ specs.network = gitlab.network
32
+ specs.args = [gitlab.address, *rspec_args]
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -16,6 +16,7 @@ module Gitlab
16
16
  gitlab.release = previous_release
17
17
  gitlab.volumes = volumes
18
18
  gitlab.network = 'test'
19
+ gitlab.seed_admin_token = false
19
20
  gitlab.launch_and_teardown_instance
20
21
  end
21
22
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Gitlab
4
4
  module QA
5
- VERSION = '7.24.6'
5
+ VERSION = '7.26.0'
6
6
  end
7
7
  end
data/lib/gitlab/qa.rb CHANGED
@@ -20,6 +20,7 @@ module Gitlab
20
20
  autoload :ObjectStorageGcs, 'gitlab/qa/runtime/omnibus_configurations/object_storage_gcs'
21
21
  autoload :LicenseMode, 'gitlab/qa/runtime/omnibus_configurations/license_mode'
22
22
  autoload :RegistryObjectStorage, 'gitlab/qa/runtime/omnibus_configurations/registry_object_storage'
23
+ autoload :CiDecomposition, 'gitlab/qa/runtime/omnibus_configurations/ci_decomposition'
23
24
  end
24
25
  end
25
26
 
@@ -43,6 +44,7 @@ module Gitlab
43
44
  autoload :Release, 'gitlab/qa/scenario/test/instance/release'
44
45
  autoload :Geo, 'gitlab/qa/scenario/test/instance/geo'
45
46
  autoload :StagingGeo, 'gitlab/qa/scenario/test/instance/staging_geo'
47
+ autoload :StagingRefGeo, 'gitlab/qa/scenario/test/instance/staging_ref_geo'
46
48
  autoload :Airgapped, 'gitlab/qa/scenario/test/instance/airgapped'
47
49
  end
48
50
 
@@ -76,6 +78,7 @@ module Gitlab
76
78
  autoload :RegistryTLS, 'gitlab/qa/scenario/test/integration/registry_tls'
77
79
  autoload :ServicePingDisabled, 'gitlab/qa/scenario/test/integration/service_ping_disabled'
78
80
  autoload :Integrations, 'gitlab/qa/scenario/test/integration/integrations'
81
+ autoload :RegistryWithCDN, 'gitlab/qa/scenario/test/integration/registry_with_cdn'
79
82
  end
80
83
 
81
84
  module Sanity
@@ -0,0 +1,72 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ class GenerateQAJobs
4
+ def initialize(no_of_example_files)
5
+ @no_of_example_files = no_of_example_files
6
+ puts "no_of_example_files: #{@no_of_example_files}"
7
+ end
8
+
9
+ # rubocop:disable Metrics/AbcSize
10
+ # rubocop:disable Metrics/PerceivedComplexity
11
+ # rubocop:disable Metrics/CyclomaticComplexity
12
+ def execute
13
+ jobs = load_yml_contents('base')
14
+ jobs.concat(load_yml_contents('sanity_framework'))
15
+ jobs.concat(load_yml_contents('custom_parallel'))
16
+ jobs.concat(load_yml_contents('instance')) if should_run?('test_instance_all')
17
+ jobs.concat(load_yml_contents('relative_url')) if should_run?('test_instance_all')
18
+ jobs.concat(load_yml_contents('repository_storage')) if should_run?('test_instance_all_repository_storage')
19
+ jobs.concat(load_yml_contents('omnibus_image'))
20
+ jobs.concat(load_yml_contents('update')) if should_run?('test_instance_all')
21
+ jobs.concat(load_yml_contents('omnibus_upgrade'))
22
+ jobs.concat(load_yml_contents('ee_previous_to_ce_update'))
23
+ jobs.concat(load_yml_contents('mattermost')) if should_run?('test_integration_mattermost')
24
+ jobs.concat(load_yml_contents('service_ping_disabled')) if should_run?('test_integration_servicepingdisabled')
25
+ jobs.concat(load_yml_contents('ldap_no_tls')) if should_run?('test_integration_ldapnotls')
26
+ jobs.concat(load_yml_contents('ldap_tls')) if should_run?('test_integration_ldaptls')
27
+ jobs.concat(load_yml_contents('ldap_no_server')) if should_run?('test_integration_ldapnoserver')
28
+ jobs.concat(load_yml_contents('instance_saml')) if should_run?('test_integration_instancesaml')
29
+ jobs.concat(load_yml_contents('group_saml')) if should_run?('test_integration_groupsaml')
30
+ jobs.concat(load_yml_contents('object_storage')) if should_run?('test_instance_all_object_storage')
31
+ jobs.concat(load_yml_contents('object_storage_aws')) if should_run?('test_instance_all_object_storage')
32
+ jobs.concat(load_yml_contents('object_storage_gcs')) if should_run?('test_instance_all_object_storage')
33
+ jobs.concat(load_yml_contents('object_storage_registry_tls')) if should_run?('test_integration_registrytls')
34
+ jobs.concat(load_yml_contents('registry')) if should_run?('test_integration_registry')
35
+ jobs.concat(load_yml_contents('packages')) if should_run?('test_instance_all_packages')
36
+ jobs.concat(load_yml_contents('actioncable')) if should_run?('test_instance_all_actioncable')
37
+ jobs.concat(load_yml_contents('elasticsearch')) if should_run?('test_integration_elasticsearch')
38
+ jobs.concat(load_yml_contents('praefect')) if should_run?('test_instance_all')
39
+ jobs.concat(load_yml_contents('gitaly_cluster')) if should_run?('test_instance_all')
40
+ jobs.concat(load_yml_contents('mtls')) if should_run?('test_instance_all_mtls')
41
+ jobs.concat(load_yml_contents('smtp')) if should_run?('test_integration_smtp')
42
+ jobs.concat(load_yml_contents('jira')) if should_run?('test_instance_all_jira')
43
+ jobs.concat(load_yml_contents('integrations')) if should_run?('test_instance_all_integrations')
44
+ jobs.concat(load_yml_contents('large_setup')) if should_run?('test_instance_all_can_use_large_setup')
45
+ jobs.concat(load_yml_contents('cloud_activation')) if should_run?('test_instance_all_cloud_activation')
46
+ jobs.concat(load_yml_contents('registry_with_cdn')) if should_run?('test_integration_registrywithcdn')
47
+ jobs.concat(load_yml_contents('staging'))
48
+
49
+ # Disabling geo jobs temporarily due to https://gitlab.com/gitlab-org/quality/team-tasks/-/issues/774
50
+ # base.concat(load_yml_contents('geo')) if should_run?('scenario_test_geo')
51
+
52
+ jobs
53
+ end
54
+ # rubocop:enable Metrics/AbcSize
55
+ # rubocop:enable Metrics/PerceivedComplexity
56
+ # rubocop:enable Metrics/CyclomaticComplexity
57
+
58
+ private
59
+
60
+ def should_run?(example_file_name)
61
+ @no_of_example_files.include?(example_file_name)
62
+ end
63
+
64
+ def load_yml_contents(file_prefix)
65
+ jobs_dir_path = File.expand_path('../.gitlab/ci/jobs', __dir__)
66
+ File.read(File.join(jobs_dir_path, "#{file_prefix}.gitlab-ci.yml"))
67
+ end
68
+ end
69
+
70
+ jobs = GenerateQAJobs.new(Dir.glob('no_of_examples/*').map { |s| File.basename(s, '.*') }).execute
71
+
72
+ File.open('generated-qa-jobs.yml', 'w') { |f| f.write(jobs) }
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AdminAccessTokenSeed
4
+ TOKEN_VALUE = 'yF4CpxN55A1V0sHMuYQa'
5
+ SCOPES = Gitlab::Auth.all_available_scopes
6
+
7
+ def self.seed!
8
+ admin_user = User.find_by(username: 'root')
9
+
10
+ token_params = {
11
+ scopes: SCOPES.map(&:to_s),
12
+ name: 'admin-api-token'
13
+ }
14
+
15
+ admin_user.personal_access_tokens.build(token_params).tap do |pat|
16
+ pat.set_token(TOKEN_VALUE)
17
+ pat.save!
18
+ end
19
+
20
+ puts 'Personal access token seeded for root user.'
21
+ end
22
+ end
23
+
24
+ AdminAccessTokenSeed.seed!
@@ -0,0 +1,75 @@
1
+ # frozen_string_literal: true
2
+ # rubocop:disable Metrics/AbcSize
3
+
4
+ class LicenseUsageSeed
5
+ def self.seed!
6
+ admin_user = User.find_by(username: 'root')
7
+ group_count = seed_groups.count
8
+ user_count = seed_users.count
9
+
10
+ puts 'Start seeding license usage data...'
11
+
12
+ rand(5..20).times { create_group(admin_user) }
13
+ create_users_and_members
14
+
15
+ puts 'Creating License usage record...'
16
+ create_license_usage_record
17
+
18
+ puts "Created #{seed_users.count - user_count} users and #{seed_groups.count - group_count} groups."
19
+ puts 'License usage data seeding completed.'
20
+ end
21
+
22
+ def self.create_user
23
+ name = "test-user#{SecureRandom.hex(8)}"
24
+
25
+ User.create!(
26
+ email: "#{name}@test.com",
27
+ password: 'password',
28
+ username: name,
29
+ name: "User #{name}",
30
+ confirmed_at: Time.current
31
+ )
32
+ end
33
+
34
+ def self.create_group(user)
35
+ name = "test-group#{SecureRandom.hex(8)}"
36
+ group_params =
37
+ {
38
+ name: name,
39
+ path: name
40
+ }
41
+ ::Groups::CreateService.new(user, group_params).execute
42
+ end
43
+
44
+ def self.create_users_and_members
45
+ seed_groups.pluck(:id).each do |group_id|
46
+ 3.times { create_member(create_user, group_id) }
47
+ end
48
+ end
49
+
50
+ def self.create_member(user, group_id)
51
+ roles = Gitlab::Access.values
52
+
53
+ GroupMember.create(user_id: user.id, access_level: roles.sample, source_id: group_id)
54
+ end
55
+
56
+ def self.seed_users
57
+ User.where('username ~* ?', '^test-user')
58
+ end
59
+
60
+ def self.seed_groups
61
+ Group.where('name ~* ?', '^test-group')
62
+ end
63
+
64
+ def self.create_license_usage_record
65
+ # Force update daily billable users and historical license data
66
+ identifier = Analytics::UsageTrends::Measurement.identifiers[:billable_users]
67
+ ::Analytics::UsageTrends::CounterJobWorker.new.perform(identifier, User.minimum(:id), User.maximum(:id), Time.zone.now)
68
+
69
+ HistoricalData.track!
70
+ end
71
+ end
72
+
73
+ LicenseUsageSeed.seed!
74
+
75
+ # rubocop:enable Metrics/AbcSize
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: 7.24.6
4
+ version: 7.26.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-03-30 00:00:00.000000000 Z
11
+ date: 2022-05-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: climate_control
@@ -218,6 +218,42 @@ files:
218
218
  - ".dockerignore"
219
219
  - ".gitignore"
220
220
  - ".gitlab-ci.yml"
221
+ - ".gitlab/ci/jobs/actioncable.gitlab-ci.yml"
222
+ - ".gitlab/ci/jobs/base.gitlab-ci.yml"
223
+ - ".gitlab/ci/jobs/cloud_activation.gitlab-ci.yml"
224
+ - ".gitlab/ci/jobs/custom_parallel.gitlab-ci.yml"
225
+ - ".gitlab/ci/jobs/ee_previous_to_ce_update.gitlab-ci.yml"
226
+ - ".gitlab/ci/jobs/elasticsearch.gitlab-ci.yml"
227
+ - ".gitlab/ci/jobs/geo.gitlab-ci.yml"
228
+ - ".gitlab/ci/jobs/gitaly_cluster.gitlab-ci.yml"
229
+ - ".gitlab/ci/jobs/group_saml.gitlab-ci.yml"
230
+ - ".gitlab/ci/jobs/instance.gitlab-ci.yml"
231
+ - ".gitlab/ci/jobs/instance_saml.gitlab-ci.yml"
232
+ - ".gitlab/ci/jobs/integrations.gitlab-ci.yml"
233
+ - ".gitlab/ci/jobs/jira.gitlab-ci.yml"
234
+ - ".gitlab/ci/jobs/large_setup.gitlab-ci.yml"
235
+ - ".gitlab/ci/jobs/ldap_no_server.gitlab-ci.yml"
236
+ - ".gitlab/ci/jobs/ldap_no_tls.gitlab-ci.yml"
237
+ - ".gitlab/ci/jobs/ldap_tls.gitlab-ci.yml"
238
+ - ".gitlab/ci/jobs/mattermost.gitlab-ci.yml"
239
+ - ".gitlab/ci/jobs/mtls.gitlab-ci.yml"
240
+ - ".gitlab/ci/jobs/object_storage.gitlab-ci.yml"
241
+ - ".gitlab/ci/jobs/object_storage_aws.gitlab-ci.yml"
242
+ - ".gitlab/ci/jobs/object_storage_gcs.gitlab-ci.yml"
243
+ - ".gitlab/ci/jobs/object_storage_registry_tls.gitlab-ci.yml"
244
+ - ".gitlab/ci/jobs/omnibus_image.gitlab-ci.yml"
245
+ - ".gitlab/ci/jobs/omnibus_upgrade.gitlab-ci.yml"
246
+ - ".gitlab/ci/jobs/packages.gitlab-ci.yml"
247
+ - ".gitlab/ci/jobs/praefect.gitlab-ci.yml"
248
+ - ".gitlab/ci/jobs/registry.gitlab-ci.yml"
249
+ - ".gitlab/ci/jobs/registry_with_cdn.gitlab-ci.yml"
250
+ - ".gitlab/ci/jobs/relative_url.gitlab-ci.yml"
251
+ - ".gitlab/ci/jobs/repository_storage.gitlab-ci.yml"
252
+ - ".gitlab/ci/jobs/sanity_framework.gitlab-ci.yml"
253
+ - ".gitlab/ci/jobs/service_ping_disabled.gitlab-ci.yml"
254
+ - ".gitlab/ci/jobs/smtp.gitlab-ci.yml"
255
+ - ".gitlab/ci/jobs/staging.gitlab-ci.yml"
256
+ - ".gitlab/ci/jobs/update.gitlab-ci.yml"
221
257
  - ".gitlab/ci/rules.gitlab-ci.yml"
222
258
  - ".gitlab/issue_templates/Default.md"
223
259
  - ".gitlab/merge_request_templates/Default.md"
@@ -235,7 +271,7 @@ files:
235
271
  - bin/expect_exit_code_and_text
236
272
  - bin/gen-cert.sh
237
273
  - bin/merge_html_reports
238
- - bin/notify_upstream_commit
274
+ - bin/notify_upstream
239
275
  - bin/setup
240
276
  - bin/slack
241
277
  - docs/README.md
@@ -299,6 +335,7 @@ files:
299
335
  - lib/gitlab/qa/runtime/env.rb
300
336
  - lib/gitlab/qa/runtime/logger.rb
301
337
  - lib/gitlab/qa/runtime/omnibus_configuration.rb
338
+ - lib/gitlab/qa/runtime/omnibus_configurations/ci_decomposition.rb
302
339
  - lib/gitlab/qa/runtime/omnibus_configurations/default.rb
303
340
  - lib/gitlab/qa/runtime/omnibus_configurations/license_mode.rb
304
341
  - lib/gitlab/qa/runtime/omnibus_configurations/object_storage.rb
@@ -325,6 +362,7 @@ files:
325
362
  - lib/gitlab/qa/scenario/test/instance/staging.rb
326
363
  - lib/gitlab/qa/scenario/test/instance/staging_geo.rb
327
364
  - lib/gitlab/qa/scenario/test/instance/staging_ref.rb
365
+ - lib/gitlab/qa/scenario/test/instance/staging_ref_geo.rb
328
366
  - lib/gitlab/qa/scenario/test/integration/actioncable.rb
329
367
  - lib/gitlab/qa/scenario/test/integration/client_ssl.rb
330
368
  - lib/gitlab/qa/scenario/test/integration/elasticsearch.rb
@@ -344,6 +382,7 @@ files:
344
382
  - lib/gitlab/qa/scenario/test/integration/praefect.rb
345
383
  - lib/gitlab/qa/scenario/test/integration/registry.rb
346
384
  - lib/gitlab/qa/scenario/test/integration/registry_tls.rb
385
+ - lib/gitlab/qa/scenario/test/integration/registry_with_cdn.rb
347
386
  - lib/gitlab/qa/scenario/test/integration/saml.rb
348
387
  - lib/gitlab/qa/scenario/test/integration/service_ping_disabled.rb
349
388
  - lib/gitlab/qa/scenario/test/integration/smtp.rb
@@ -359,6 +398,9 @@ files:
359
398
  - lib/gitlab/qa/support/invalid_response_error.rb
360
399
  - lib/gitlab/qa/test_logger.rb
361
400
  - lib/gitlab/qa/version.rb
401
+ - scripts/generate-qa-jobs.rb
402
+ - support/data/admin_access_token_seed.rb
403
+ - support/data/license_usage_seed.rb
362
404
  - tls_certificates/authority/ca.crt
363
405
  - tls_certificates/authority/ca.key
364
406
  - tls_certificates/authority/ca.pem
@@ -1,61 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- require 'gitlab'
5
-
6
- # Default to "Multi-pipeline (from 'gitlab-org/gitlab-qa' 'notify_upstream_commit:*' jobs)" from current project
7
- api_token = ENV.fetch('GITLAB_QA_PROJECT_ACCESS_TOKEN') do
8
- puts "The $GITLAB_BOT_MULTI_PROJECT_PIPELINE_POLLING_TOKEN variable is deprecated in favor of a dedicated project access token: $GITLAB_QA_PROJECT_ACCESS_TOKEN."
9
- puts "See https://gitlab.com/groups/gitlab-org/quality/-/epics/17 for more details."
10
- ENV['GITLAB_BOT_MULTI_PROJECT_PIPELINE_POLLING_TOKEN']
11
- end
12
-
13
- # Configure credentials to be used with gitlab gem
14
- Gitlab.configure do |config|
15
- config.endpoint = 'https://gitlab.com/api/v4'
16
- config.private_token = api_token
17
- end
18
-
19
- class CommitComment
20
- def self.post!(status)
21
- unless ENV['TOP_UPSTREAM_SOURCE_SHA']
22
- puts "The 'TOP_UPSTREAM_SOURCE_SHA' environment variable is missing, cannot post a comment on a missing upstream commit."
23
- return
24
- end
25
-
26
- top_upstream_source_sha = ENV['TOP_UPSTREAM_SOURCE_SHA']
27
-
28
- unless ENV['TOP_UPSTREAM_SOURCE_PROJECT']
29
- puts "The 'TOP_UPSTREAM_SOURCE_PROJECT' environment variable is missing, cannot post a comment on the upstream #{top_upstream_source_sha} commit."
30
- return
31
- end
32
-
33
- top_upstream_source_project = ENV['TOP_UPSTREAM_SOURCE_PROJECT']
34
-
35
- status_with_icon =
36
- case status
37
- when :success
38
- "passed. :white_check_mark:"
39
- when :failure
40
- "failed! :boom:"
41
- end
42
-
43
- # The HTML report can't be opened as a web page so we're forced to
44
- # download it. See https://gitlab.com/gitlab-org/gitlab/issues/25192
45
- Gitlab.create_commit_comment(
46
- top_upstream_source_project,
47
- top_upstream_source_sha,
48
- <<~COMMENT
49
- The [`gitlab-qa` downstream pipeline](#{ENV['CI_PIPELINE_URL']}) #{status_with_icon}.
50
- COMMENT
51
- )
52
- rescue Gitlab::Error::Error => error
53
- puts "Ignoring the following error: #{error}"
54
- end
55
- end
56
-
57
- status = ARGV.shift.to_s.strip
58
-
59
- abort "Please provide a status!" if status == ''
60
-
61
- CommitComment.post!(status.to_sym)