gitlab-qa 7.24.6 → 7.26.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.
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)