gitlab-qa 7.11.0 → 7.13.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,7 @@
1
1
  # What tests can be run?
2
+
2
3
  [[_TOC_]]
4
+
3
5
  ## The two types of QA tests
4
6
 
5
7
  First of all, the first thing to choose is whether you want to run orchestrated
@@ -245,8 +247,8 @@ instance-level tests against it.
245
247
  To run tests against the GitLab containers, a GitLab QA (`gitlab/gitlab-qa`)
246
248
  container is spun up and tests are run from it by running the `Test::Instance`
247
249
  scenario (located under
248
- [`gitlab-org/gitlab-ce@qa/qa/scenario/test/instance.rb`][test-instance] in the
249
- GitLab CE project).
250
+ [`gitlab-org/gitlab/qa/qa/scenario/test/instance.rb`][test-instance] in the
251
+ GitLab project).
250
252
 
251
253
  Example:
252
254
 
@@ -370,8 +372,8 @@ that LDAP-related features work as expected.
370
372
  To run tests against the GitLab containers, a GitLab QA (`gitlab/gitlab-qa`)
371
373
  container is spun up and tests are run from it by running the
372
374
  `Test::Integration::LDAPNoTLS` scenario (located under
373
- [`gitlab-org/gitlab-ce@qa/qa/scenario/test/integration/ldap_no_tls.rb`][test-integration-ldap-no-tls]
374
- in the GitLab CE project).
375
+ [`gitlab-org/gitlab/qa/qa/scenario/test/integration/ldap_no_tls.rb`][test-integration-ldap-no-tls]
376
+ in the GitLab project).
375
377
 
376
378
  In EE, both the GitLab standard and LDAP credentials are needed:
377
379
 
@@ -393,7 +395,7 @@ $ export EE_LICENSE=$(cat /path/to/Geo.gitlab_license)
393
395
  $ gitlab-qa Test::Integration::LDAPNoTLS EE
394
396
  ```
395
397
 
396
- [test-integration-ldap-no-tls]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/qa/qa/scenario/test/integration/ldap_no_tls.rb
398
+ [test-integration-ldap-no-tls]: https://gitlab.com/gitlab-org/gitlab/blob/master/qa/qa/scenario/test/integration/ldap_no_tls.rb
397
399
 
398
400
  ### `Test::Integration::LDAPTLS CE|EE|<full image address>`
399
401
 
@@ -411,8 +413,8 @@ that LDAP-related features work as expected.
411
413
  To run tests against the GitLab containers, a GitLab QA (`gitlab/gitlab-qa`)
412
414
  container is spun up and tests are run from it by running the
413
415
  `Test::Integration::LDAPTLS` scenario (located under
414
- [`gitlab-org/gitlab-ce@qa/qa/scenario/test/integration/ldap_tls.rb`][test-integration-ldap-tls]
415
- in the GitLab CE project).
416
+ [`gitlab-org/gitlab/qa/qa/scenario/test/integration/ldap_tls.rb`][test-integration-ldap-tls]
417
+ in the GitLab project).
416
418
 
417
419
  In EE, both the GitLab standard and LDAP credentials are needed:
418
420
 
@@ -434,8 +436,8 @@ $ export EE_LICENSE=$(cat /path/to/Geo.gitlab_license)
434
436
  $ gitlab-qa Test::Integration::LDAPTLS EE
435
437
  ```
436
438
 
437
- [test-integration-ldap-tls]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/qa/qa/scenario/test/integration/ldap_tls.rb
438
- [test-integration-ldap-tls-certs]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/tls_certificates/gitlab
439
+ [test-integration-ldap-tls]: https://gitlab.com/gitlab-org/gitlab/blob/master/qa/qa/scenario/test/integration/ldap_tls.rb
440
+ [test-integration-ldap-tls-certs]: https://gitlab.com/gitlab-org/gitlab/blob/master/tls_certificates/gitlab
439
441
 
440
442
  ### `Test::Integration::LDAPNoServer EE|<full image address>`
441
443
 
@@ -504,9 +506,9 @@ using SAML.
504
506
 
505
507
  To run tests against the GitLab containers, a GitLab QA (`gitlab/gitlab-qa`)
506
508
  container is spun up and tests are run from it by running the
507
- `Test::Integration::InstanceSAML` scenario (located under [`gitlab-org/gitlab-ce@qa/qa/scenario/test/integration/instance_saml.rb`][test-integration-instance-saml] in the GitLab CE project).
509
+ `Test::Integration::InstanceSAML` scenario (located under [`gitlab-org/gitlab-ce@qa/qa/scenario/test/integration/instance_saml.rb`][test-integration-instance-saml] in the GitLab project).
508
510
 
509
- [test-integration-instance-saml]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/qa/qa/scenario/test/integration/instance_saml.rb
511
+ [test-integration-instance-saml]: https://gitlab.com/gitlab-org/gitlab/blob/master/qa/qa/scenario/test/integration/instance_saml.rb
510
512
 
511
513
  **Required environment variables:**
512
514
 
@@ -531,8 +533,8 @@ Mattermost server (see `Test::Instance::Image` above).
531
533
  To run tests against the GitLab container, a GitLab QA (`gitlab/gitlab-qa`)
532
534
  container is spun up and tests are run from it by running the
533
535
  `Test::Integration::Mattermost` scenario (located under
534
- [`gitlab-org/gitlab-ce@qa/qa/scenario/test/integration/mattermost.rb`][test-integration-mattermost]
535
- in the GitLab CE project).
536
+ [`gitlab-org/gitlab/qa/qa/scenario/test/integration/mattermost.rb`][test-integration-mattermost]
537
+ in the GitLab project).
536
538
 
537
539
  **Required environment variables:**
538
540
 
@@ -549,7 +551,7 @@ $ export EE_LICENSE=$(cat /path/to/Geo.gitlab_license)
549
551
  $ gitlab-qa Test::Integration::Mattermost EE
550
552
  ```
551
553
 
552
- [test-integration-mattermost]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/qa/qa/scenario/test/integration/mattermost.rb
554
+ [test-integration-mattermost]: https://gitlab.com/gitlab-org/gitlab/blob/master/qa/qa/scenario/test/integration/mattermost.rb
553
555
 
554
556
  ### `Test::Integration::Packages CE|EE|<full image address>`
555
557
 
@@ -668,8 +670,8 @@ against it.
668
670
  To run tests against the GitLab instance, a GitLab QA (`gitlab/gitlab-qa`)
669
671
  container is spun up and tests are run from it by running the
670
672
  `Test::Instance` scenario (located under
671
- [`gitlab-org/gitlab-ce@qa/qa/scenario/test/instance.rb`][test-instance] in the
672
- in the GitLab CE project).
673
+ [`gitlab-org/gitlab/qa/qa/scenario/test/instance.rb`][test-instance] in the
674
+ in the GitLab project).
673
675
 
674
676
  Example:
675
677
 
@@ -695,8 +697,8 @@ works as expected by running tests against it.
695
697
  To run tests against the GitLab instance, a GitLab QA (`gitlab/gitlab-qa`)
696
698
  container is spun up and tests are run from it by running the
697
699
  `Test::Instance` scenario (located under
698
- [`gitlab-org/gitlab-ce@qa/qa/scenario/test/instance.rb`][test-instance] in the
699
- in the GitLab CE project).
700
+ [`gitlab-org/gitlab/qa/qa/scenario/test/instance.rb`][test-instance] in the
701
+ in the GitLab project).
700
702
 
701
703
  **Required environment variables:**
702
704
 
@@ -723,6 +725,42 @@ $ export GITLAB_PASSWORD="$GITLAB_QA_PASSWORD"
723
725
  $ gitlab-qa Test::Instance::Staging
724
726
  ```
725
727
 
728
+ ### `Test::Instance::StagingRef`
729
+
730
+ This scenario tests that the [`Staging Ref`](https://staging-ref.gitlab.com)
731
+ works as expected by running tests against it.
732
+
733
+ To run tests against the GitLab instance, a GitLab QA (`gitlab/gitlab-qa`)
734
+ container is spun up and tests are run from it by running the
735
+ `Test::Instance` scenario (located under
736
+ [`gitlab-org/gitlab/qa/qa/scenario/test/instance.rb`][test-instance] in the
737
+ in the GitLab project).
738
+
739
+ **Required environment variables:**
740
+
741
+ - `GITLAB_QA_ACCESS_TOKEN`: A valid personal access token with the `api` scope.
742
+ This is used to retrieve the version that staging is currently running.
743
+ Staging Ref QA users credentials can be found in the shared GitLab QA 1Password vault.
744
+
745
+ **Optional environment variables:**
746
+
747
+ - `GITLAB_QA_DEV_ACCESS_TOKEN`: A valid personal access token for the
748
+ `gitlab-qa-bot` on `dev.gitlab.org` with the `registry` scope.
749
+ This is used to pull the QA Docker image from the Omnibus GitLab `dev` Container Registry.
750
+ If the variable isn't present, the QA image from Docker Hub will be used.
751
+ This can be found in the shared GitLab QA 1Password vault.
752
+
753
+ Example:
754
+
755
+ ```
756
+ $ export GITLAB_QA_ACCESS_TOKEN=your_api_access_token
757
+ $ export GITLAB_QA_DEV_ACCESS_TOKEN=your_dev_registry_access_token
758
+ $ export GITLAB_USERNAME="gitlab-qa"
759
+ $ export GITLAB_PASSWORD="$GITLAB_QA_PASSWORD"
760
+
761
+ $ gitlab-qa Test::Instance::StagingRef
762
+ ```
763
+
726
764
  ### `Test::Instance::StagingGeo`
727
765
 
728
766
  This scenario tests that the Geo staging deployment (with [`staging.gitlab.com`](https://staging.gitlab.com) as the primary site and [`geo.staging.gitlab.com`](https://geo.staging.gitlab.com) as the secondary site) works as expected by running tests tagged `:geo` against it. This is done by spinning up a GitLab QA (`gitlab/gitlab-qa`) container and running the `QA::EE::Scenario::Test::Geo` scenario. Note that the Geo setup steps in the `QA::EE::Scenario::Test::Geo` scenario are skipped when testing a live Geo deployment.
@@ -789,8 +827,8 @@ Smoke tests are quick tests that ensure that some basic functionality of GitLab
789
827
  To run tests against the GitLab instance, a GitLab QA (`gitlab/gitlab-qa`)
790
828
  container is spun up and tests are run from it by running the
791
829
  `Test::Instance::Smoke` scenario (located under
792
- [`gitlab-org/gitlab-ce@qa/qa/scenario/test/smoke.rb`][smoke-instance] in the
793
- in the GitLab CE project).
830
+ [`gitlab-org/gitlab/qa/qa/scenario/test/smoke.rb`][smoke-instance] in the
831
+ in the GitLab project).
794
832
 
795
833
  Example:
796
834
 
@@ -863,5 +901,5 @@ $ gitlab-qa Test::Instance::Geo EE https://primary.gitlab.com https://secondary.
863
901
 
864
902
  [Back to README.md](../README.md)
865
903
 
866
- [test-instance]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/qa/qa/scenario/test/instance/all.rb
867
- [smoke-instance]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/qa/qa/scenario/test/instance/smoke.rb
904
+ [test-instance]: https://gitlab.com/gitlab-org/gitlab/blob/master/qa/qa/scenario/test/instance/all.rb
905
+ [smoke-instance]: https://gitlab.com/gitlab-org/gitlab/blob/master/qa/qa/scenario/test/instance/smoke.rb
@@ -1,7 +1,3 @@
1
- require 'net/http'
2
- require 'json'
3
- require 'uri'
4
-
5
1
  module Gitlab
6
2
  module QA
7
3
  module Component
@@ -1,7 +1,3 @@
1
- require 'net/http'
2
- require 'json'
3
- require 'uri'
4
-
5
1
  module Gitlab
6
2
  module QA
7
3
  module Component
@@ -1,7 +1,3 @@
1
- require 'net/http'
2
- require 'json'
3
- require 'uri'
4
-
5
1
  module Gitlab
6
2
  module QA
7
3
  module Component
@@ -0,0 +1,9 @@
1
+ module Gitlab
2
+ module QA
3
+ module Component
4
+ class StagingRef < Staging
5
+ ADDRESS = 'https://staging-ref.gitlab.com'.freeze
6
+ end
7
+ end
8
+ end
9
+ end
@@ -113,7 +113,7 @@ module Gitlab
113
113
  "found:#{pipeline}.gitlab.com"
114
114
  when 'preprod'
115
115
  'found:pre.gitlab.com'
116
- when 'staging-orchestrated', 'nightly', QA::Runtime::Env.default_branch
116
+ when 'staging-orchestrated', 'nightly', QA::Runtime::Env.default_branch, 'staging-ref', 'release'
117
117
  "found:#{pipeline}"
118
118
  else
119
119
  raise "No `found:*` label for the `#{pipeline}` pipeline!"
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gitlab
4
+ module QA
5
+ module Runtime
6
+ module OmnibusConfigurations
7
+ class RegistryObjectStorage < Default
8
+ def configuration
9
+ Runtime::Env.require_aws_s3_environment!
10
+
11
+ <<~OMNIBUS
12
+ registry['storage'] = { 's3' => { 'accesskey' => '#{Runtime::Env.aws_s3_key_id}', 'secretkey' => '#{Runtime::Env.aws_s3_access_key}', 'bucket' => '#{Runtime::Env.aws_s3_bucket_name}', 'region' => '#{Runtime::Env.aws_s3_region}' } }
13
+ OMNIBUS
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,18 @@
1
+ module Gitlab
2
+ module QA
3
+ module Scenario
4
+ module Test
5
+ module Instance
6
+ ##
7
+ # Run test suite against Staging Ref environment
8
+ #
9
+ class StagingRef < DeploymentBase
10
+ def deployment_component
11
+ Component::StagingRef
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -99,6 +99,7 @@ module Gitlab
99
99
  praefect['listen_addr'] = '0.0.0.0:2305';
100
100
  praefect['prometheus_listen_addr'] = '0.0.0.0:9652';
101
101
  praefect['auth_token'] = 'PRAEFECT_EXTERNAL_TOKEN';
102
+ praefect['reconciliation_scheduling_interval'] = '10s';
102
103
  praefect['database_host'] = '#{@database}.#{@network}';
103
104
  praefect['database_user'] = 'postgres';
104
105
  praefect['database_port'] = 5432;
@@ -11,19 +11,10 @@ module Gitlab
11
11
  gitlab.release = release
12
12
  gitlab.network = 'test'
13
13
  gitlab.name = 'gitlab'
14
- gitlab.tls = true
15
14
 
16
15
  gitlab.omnibus_configuration << <<~OMNIBUS
17
- external_url 'https://#{gitlab.name}.#{gitlab.network}';
18
- registry_external_url 'https://#{gitlab.name}.#{gitlab.network}:5050';
19
-
20
- letsencrypt['enable'] = false;
21
-
22
- nginx['redirect_http_to_https'] = true;
23
- nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.test.crt";
24
- nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.test.key";
25
- registry_nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.test.crt";
26
- registry_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.test.key";
16
+ external_url 'http://#{gitlab.name}.#{gitlab.network}';
17
+ registry_external_url 'http://#{gitlab.name}.#{gitlab.network}:5050';
27
18
  OMNIBUS
28
19
 
29
20
  gitlab.instance do
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gitlab
4
+ module QA
5
+ module Scenario
6
+ module Test
7
+ module Integration
8
+ class RegistryTLS < Scenario::Template
9
+ def perform(release, *rspec_args)
10
+ Component::Gitlab.perform do |gitlab|
11
+ gitlab.release = release
12
+ gitlab.network = 'test'
13
+ gitlab.name = 'gitlab'
14
+ gitlab.tls = true
15
+
16
+ gitlab.omnibus_configuration << <<~OMNIBUS
17
+ external_url 'https://#{gitlab.name}.#{gitlab.network}';
18
+ registry_external_url 'https://#{gitlab.name}.#{gitlab.network}:5050';
19
+
20
+ letsencrypt['enable'] = false;
21
+
22
+ nginx['redirect_http_to_https'] = true;
23
+ nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.test.crt";
24
+ nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.test.key";
25
+ registry_nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.test.crt";
26
+ registry_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.test.key";
27
+ OMNIBUS
28
+
29
+ gitlab.instance do
30
+ Component::Specs.perform do |specs|
31
+ specs.suite = 'Test::Integration::RegistryTLS'
32
+ specs.release = gitlab.release
33
+ specs.network = gitlab.network
34
+ specs.args = [gitlab.address, *rspec_args]
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -1,5 +1,5 @@
1
1
  module Gitlab
2
2
  module QA
3
- VERSION = '7.11.0'.freeze
3
+ VERSION = '7.13.2'.freeze
4
4
  end
5
5
  end
data/lib/gitlab/qa.rb CHANGED
@@ -17,6 +17,7 @@ module Gitlab
17
17
  autoload :ObjectStorageAws, 'gitlab/qa/runtime/omnibus_configurations/object_storage_aws'
18
18
  autoload :ObjectStorageGcs, 'gitlab/qa/runtime/omnibus_configurations/object_storage_gcs'
19
19
  autoload :LicenseMode, 'gitlab/qa/runtime/omnibus_configurations/license_mode'
20
+ autoload :RegistryObjectStorage, 'gitlab/qa/runtime/omnibus_configurations/registry_object_storage'
20
21
  end
21
22
  end
22
23
 
@@ -33,6 +34,7 @@ module Gitlab
33
34
  autoload :RelativeUrl, 'gitlab/qa/scenario/test/instance/relative_url'
34
35
  autoload :RepositoryStorage, 'gitlab/qa/scenario/test/instance/repository_storage'
35
36
  autoload :Staging, 'gitlab/qa/scenario/test/instance/staging'
37
+ autoload :StagingRef, 'gitlab/qa/scenario/test/instance/staging_ref'
36
38
  autoload :Production, 'gitlab/qa/scenario/test/instance/production'
37
39
  autoload :Smoke, 'gitlab/qa/scenario/test/instance/smoke'
38
40
  autoload :Preprod, 'gitlab/qa/scenario/test/instance/preprod'
@@ -69,6 +71,7 @@ module Gitlab
69
71
  autoload :MTLS, 'gitlab/qa/scenario/test/integration/mtls'
70
72
  autoload :ClientSSL, 'gitlab/qa/scenario/test/integration/client_ssl'
71
73
  autoload :Registry, 'gitlab/qa/scenario/test/integration/registry'
74
+ autoload :RegistryTLS, 'gitlab/qa/scenario/test/integration/registry_tls'
72
75
  end
73
76
 
74
77
  module Sanity
@@ -85,6 +88,7 @@ module Gitlab
85
88
  autoload :SAML, 'gitlab/qa/component/saml'
86
89
  autoload :Specs, 'gitlab/qa/component/specs'
87
90
  autoload :Staging, 'gitlab/qa/component/staging'
91
+ autoload :StagingRef, 'gitlab/qa/component/staging_ref'
88
92
  autoload :Production, 'gitlab/qa/component/production'
89
93
  autoload :Minio, 'gitlab/qa/component/minio'
90
94
  autoload :Preprod, 'gitlab/qa/component/preprod'
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.11.0
4
+ version: 7.13.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitLab Quality
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-10-12 00:00:00.000000000 Z
11
+ date: 2021-10-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: climate_control
@@ -190,6 +190,7 @@ files:
190
190
  - ".dockerignore"
191
191
  - ".gitignore"
192
192
  - ".gitlab-ci.yml"
193
+ - ".gitlab/ci/rules.gitlab-ci.yml"
193
194
  - ".gitlab/merge_request_templates/Release.md"
194
195
  - ".rspec"
195
196
  - ".rubocop.yml"
@@ -240,6 +241,7 @@ files:
240
241
  - lib/gitlab/qa/component/saml.rb
241
242
  - lib/gitlab/qa/component/specs.rb
242
243
  - lib/gitlab/qa/component/staging.rb
244
+ - lib/gitlab/qa/component/staging_ref.rb
243
245
  - lib/gitlab/qa/docker/command.rb
244
246
  - lib/gitlab/qa/docker/engine.rb
245
247
  - lib/gitlab/qa/docker/shellout.rb
@@ -268,6 +270,7 @@ files:
268
270
  - lib/gitlab/qa/runtime/omnibus_configurations/object_storage_aws.rb
269
271
  - lib/gitlab/qa/runtime/omnibus_configurations/object_storage_gcs.rb
270
272
  - lib/gitlab/qa/runtime/omnibus_configurations/packages.rb
273
+ - lib/gitlab/qa/runtime/omnibus_configurations/registry_object_storage.rb
271
274
  - lib/gitlab/qa/runtime/scenario.rb
272
275
  - lib/gitlab/qa/runtime/token_finder.rb
273
276
  - lib/gitlab/qa/scenario/actable.rb
@@ -286,6 +289,7 @@ files:
286
289
  - lib/gitlab/qa/scenario/test/instance/smoke.rb
287
290
  - lib/gitlab/qa/scenario/test/instance/staging.rb
288
291
  - lib/gitlab/qa/scenario/test/instance/staging_geo.rb
292
+ - lib/gitlab/qa/scenario/test/instance/staging_ref.rb
289
293
  - lib/gitlab/qa/scenario/test/integration/actioncable.rb
290
294
  - lib/gitlab/qa/scenario/test/integration/client_ssl.rb
291
295
  - lib/gitlab/qa/scenario/test/integration/elasticsearch.rb
@@ -303,6 +307,7 @@ files:
303
307
  - lib/gitlab/qa/scenario/test/integration/mtls.rb
304
308
  - lib/gitlab/qa/scenario/test/integration/praefect.rb
305
309
  - lib/gitlab/qa/scenario/test/integration/registry.rb
310
+ - lib/gitlab/qa/scenario/test/integration/registry_tls.rb
306
311
  - lib/gitlab/qa/scenario/test/integration/saml.rb
307
312
  - lib/gitlab/qa/scenario/test/integration/smtp.rb
308
313
  - lib/gitlab/qa/scenario/test/integration/ssh_tunnel.rb