gitlab-qa 7.0.0 → 7.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitlab-ci.yml +29 -29
- data/docs/what_tests_can_be_run.md +12 -8
- data/gitlab-qa.gemspec +5 -3
- data/lib/gitlab/qa/component/base.rb +2 -2
- data/lib/gitlab/qa/component/elasticsearch.rb +1 -1
- data/lib/gitlab/qa/component/gitlab.rb +2 -16
- data/lib/gitlab/qa/component/internet_tunnel.rb +4 -1
- data/lib/gitlab/qa/component/jira.rb +1 -1
- data/lib/gitlab/qa/component/ldap.rb +1 -1
- data/lib/gitlab/qa/component/mail_hog.rb +1 -1
- data/lib/gitlab/qa/component/minio.rb +1 -1
- data/lib/gitlab/qa/component/postgresql.rb +1 -1
- data/lib/gitlab/qa/component/saml.rb +1 -1
- data/lib/gitlab/qa/component/specs.rb +2 -2
- data/lib/gitlab/qa/docker/engine.rb +2 -2
- data/lib/gitlab/qa/runner.rb +22 -4
- data/lib/gitlab/qa/runtime/omnibus_configuration.rb +15 -4
- data/lib/gitlab/qa/scenario/test/integration/gitaly_cluster.rb +1 -2
- data/lib/gitlab/qa/scenario/test/integration/ldap.rb +1 -4
- data/lib/gitlab/qa/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 11257d04b7148f3f1a25b08136c44734701fbf20fc3e1bd8cb8cc2315e67a4a4
|
4
|
+
data.tar.gz: 97585ca75030f229cc2eea291eebf1b85b31017a6ba0f31c8450eaebea636c74
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 587cf192a0d5ef209e7b94110510424078cbb765f81c0d4c1aab79eddfa690837a4da28e4f6121f031ac95cfbe760efe4ceffa3badebdbb83dad28ba0459de03
|
7
|
+
data.tar.gz: 66cadfafda69cf92cfece41609ad62de5dbfa5973c710d263f3848dbf8fbcd0d618d43b8ed0797ba30dd48f76c35e0e105ada659127f9a6f701b220aed1ea801
|
data/.gitlab-ci.yml
CHANGED
@@ -75,9 +75,9 @@ rspec:
|
|
75
75
|
reports:
|
76
76
|
junit: gitlab-qa-run-*/**/rspec-*.xml
|
77
77
|
script:
|
78
|
-
- 'echo "Running: exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTS -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS"'
|
79
|
-
- exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTS -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS || test_run_exit_code=$?
|
80
|
-
- exe/gitlab-qa-report --update-screenshot-path "gitlab-qa-run-*/**/rspec-*.xml"
|
78
|
+
- 'echo "Running: bundle exec exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTS -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS"'
|
79
|
+
- bundle exec exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTS -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS || test_run_exit_code=$?
|
80
|
+
- bundle exec exe/gitlab-qa-report --update-screenshot-path "gitlab-qa-run-*/**/rspec-*.xml"
|
81
81
|
- export GITLAB_QA_ACCESS_TOKEN="$GITLAB_QA_PRODUCTION_ACCESS_TOKEN"
|
82
82
|
- if [ "$TOP_UPSTREAM_SOURCE_REF" == $TOP_UPSTREAM_DEFAULT_BRANCH ] || [[ "$TOP_UPSTREAM_SOURCE_JOB" == https://ops.gitlab.net* ]]; then exe/gitlab-qa-report --report-in-issues "gitlab-qa-run-*/**/rspec-*.json" --project "$QA_TESTCASES_REPORTING_PROJECT" || true; fi
|
83
83
|
- exit $test_run_exit_code
|
@@ -153,7 +153,7 @@ rspec:
|
|
153
153
|
|
154
154
|
ce:sanity-framework:
|
155
155
|
script:
|
156
|
-
- ./bin/expect_exit_code_and_text "exe/gitlab-qa Test::Instance::Image ${RELEASE:=CE} -- --tag framework" 1 "2 examples, 1 failure"
|
156
|
+
- ./bin/expect_exit_code_and_text "bundle exec exe/gitlab-qa Test::Instance::Image ${RELEASE:=CE} -- --tag framework" 1 "2 examples, 1 failure"
|
157
157
|
extends:
|
158
158
|
- .test
|
159
159
|
- .high-capacity
|
@@ -161,7 +161,7 @@ ce:sanity-framework:
|
|
161
161
|
|
162
162
|
ee:sanity-framework:
|
163
163
|
script:
|
164
|
-
- ./bin/expect_exit_code_and_text "exe/gitlab-qa Test::Instance::Image ${RELEASE:=EE} -- --tag framework" 1 "2 examples, 1 failure"
|
164
|
+
- ./bin/expect_exit_code_and_text "bundle exec exe/gitlab-qa Test::Instance::Image ${RELEASE:=EE} -- --tag framework" 1 "2 examples, 1 failure"
|
165
165
|
extends:
|
166
166
|
- .test
|
167
167
|
- .high-capacity
|
@@ -170,8 +170,8 @@ ee:sanity-framework:
|
|
170
170
|
# The custom jobs are for manually running specific/alternative tests in MRs, so we don't report them in issues
|
171
171
|
ce:custom-parallel:
|
172
172
|
script:
|
173
|
-
- 'echo "Running: exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTS -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS"'
|
174
|
-
- exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTS -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS
|
173
|
+
- 'echo "Running: bundle exec exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTS -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS"'
|
174
|
+
- bundle exec exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTS -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS
|
175
175
|
extends:
|
176
176
|
- .test
|
177
177
|
- .high-capacity
|
@@ -182,8 +182,8 @@ ce:custom-parallel:
|
|
182
182
|
|
183
183
|
ee:custom-parallel:
|
184
184
|
script:
|
185
|
-
- 'echo "Running: exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTS -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS"'
|
186
|
-
- exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTS -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS
|
185
|
+
- 'echo "Running: bundle exec exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTS -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS"'
|
186
|
+
- bundle exec exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTS -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS
|
187
187
|
extends:
|
188
188
|
- .test
|
189
189
|
- .high-capacity
|
@@ -315,14 +315,14 @@ ee:repository_storage-quarantine:
|
|
315
315
|
# The Test::Omnibus::Image scenarios don't run the E2E tests so they don't need to report test results
|
316
316
|
ce:image:
|
317
317
|
script:
|
318
|
-
- exe/gitlab-qa Test::Omnibus::Image ${RELEASE:=CE}
|
318
|
+
- bundle exec exe/gitlab-qa Test::Omnibus::Image ${RELEASE:=CE}
|
319
319
|
extends:
|
320
320
|
- .test
|
321
321
|
- .ce-qa
|
322
322
|
|
323
323
|
ee:image:
|
324
324
|
script:
|
325
|
-
- exe/gitlab-qa Test::Omnibus::Image ${RELEASE:=EE}
|
325
|
+
- bundle exec exe/gitlab-qa Test::Omnibus::Image ${RELEASE:=EE}
|
326
326
|
extends:
|
327
327
|
- .test
|
328
328
|
- .ee-qa
|
@@ -331,7 +331,7 @@ ee:image:
|
|
331
331
|
# So instead we include the script here again, with two release variables
|
332
332
|
ce:update:
|
333
333
|
script:
|
334
|
-
- exe/gitlab-qa Test::Omnibus::Update ${RELEASE:=CE} ${RELEASE:=CE} -- $RSPEC_REPORT_OPTS || test_run_exit_code=$?
|
334
|
+
- bundle exec exe/gitlab-qa Test::Omnibus::Update ${RELEASE:=CE} ${RELEASE:=CE} -- $RSPEC_REPORT_OPTS || test_run_exit_code=$?
|
335
335
|
- export GITLAB_QA_ACCESS_TOKEN="$GITLAB_QA_PRODUCTION_ACCESS_TOKEN"
|
336
336
|
- if [ "$TOP_UPSTREAM_SOURCE_REF" == $TOP_UPSTREAM_DEFAULT_BRANCH ] || [[ "$TOP_UPSTREAM_SOURCE_JOB" == https://ops.gitlab.net* ]]; then exe/gitlab-qa-report --report-in-issues "gitlab-qa-run-*/**/rspec-*.json" --project "$QA_TESTCASES_REPORTING_PROJECT" || true; fi
|
337
337
|
- exit $test_run_exit_code
|
@@ -345,7 +345,7 @@ ce:update:
|
|
345
345
|
|
346
346
|
ce:update-quarantine:
|
347
347
|
script:
|
348
|
-
- exe/gitlab-qa Test::Omnibus::Update ${RELEASE:=CE} ${RELEASE:=CE} -- --tag quarantine --tag ~orchestrated $RSPEC_REPORT_OPTS || test_run_exit_code=$?
|
348
|
+
- bundle exec exe/gitlab-qa Test::Omnibus::Update ${RELEASE:=CE} ${RELEASE:=CE} -- --tag quarantine --tag ~orchestrated $RSPEC_REPORT_OPTS || test_run_exit_code=$?
|
349
349
|
- export GITLAB_QA_ACCESS_TOKEN="$GITLAB_QA_PRODUCTION_ACCESS_TOKEN"
|
350
350
|
- if [ "$TOP_UPSTREAM_SOURCE_REF" == $TOP_UPSTREAM_DEFAULT_BRANCH ] || [[ "$TOP_UPSTREAM_SOURCE_JOB" == https://ops.gitlab.net* ]]; then exe/gitlab-qa-report --report-in-issues "gitlab-qa-run-*/**/rspec-*.json" --project "$QA_TESTCASES_REPORTING_PROJECT" || true; fi
|
351
351
|
- exit $test_run_exit_code
|
@@ -358,7 +358,7 @@ ce:update-quarantine:
|
|
358
358
|
|
359
359
|
ee:update:
|
360
360
|
script:
|
361
|
-
- exe/gitlab-qa Test::Omnibus::Update ${RELEASE:=EE} ${RELEASE:=EE} -- $RSPEC_REPORT_OPTS || test_run_exit_code=$?
|
361
|
+
- bundle exec exe/gitlab-qa Test::Omnibus::Update ${RELEASE:=EE} ${RELEASE:=EE} -- $RSPEC_REPORT_OPTS || test_run_exit_code=$?
|
362
362
|
- export GITLAB_QA_ACCESS_TOKEN="$GITLAB_QA_PRODUCTION_ACCESS_TOKEN"
|
363
363
|
- if [ "$TOP_UPSTREAM_SOURCE_REF" == $TOP_UPSTREAM_DEFAULT_BRANCH ] || [[ "$TOP_UPSTREAM_SOURCE_JOB" == https://ops.gitlab.net* ]]; then exe/gitlab-qa-report --report-in-issues "gitlab-qa-run-*/**/rspec-*.json" --project "$QA_TESTCASES_REPORTING_PROJECT" || true; fi
|
364
364
|
- exit $test_run_exit_code
|
@@ -372,7 +372,7 @@ ee:update:
|
|
372
372
|
|
373
373
|
ee:update-quarantine:
|
374
374
|
script:
|
375
|
-
- exe/gitlab-qa Test::Omnibus::Update ${RELEASE:=EE} ${RELEASE:=EE} -- --tag quarantine --tag ~orchestrated $RSPEC_REPORT_OPTS || test_run_exit_code=$?
|
375
|
+
- bundle exec exe/gitlab-qa Test::Omnibus::Update ${RELEASE:=EE} ${RELEASE:=EE} -- --tag quarantine --tag ~orchestrated $RSPEC_REPORT_OPTS || test_run_exit_code=$?
|
376
376
|
- export GITLAB_QA_ACCESS_TOKEN="$GITLAB_QA_PRODUCTION_ACCESS_TOKEN"
|
377
377
|
- if [ "$TOP_UPSTREAM_SOURCE_REF" == $TOP_UPSTREAM_DEFAULT_BRANCH ] || [[ "$TOP_UPSTREAM_SOURCE_JOB" == https://ops.gitlab.net* ]]; then exe/gitlab-qa-report --report-in-issues "gitlab-qa-run-*/**/rspec-*.json" --project "$QA_TESTCASES_REPORTING_PROJECT" || true; fi
|
378
378
|
- exit $test_run_exit_code
|
@@ -386,7 +386,7 @@ ee:update-quarantine:
|
|
386
386
|
# The Test::Omnibus::Upgrade scenario isn't run on master (because it always uses the latest CE/EE image) so we don't report the test results in issues
|
387
387
|
ce:upgrade:
|
388
388
|
script:
|
389
|
-
- exe/gitlab-qa Test::Omnibus::Upgrade CE -- $RSPEC_REPORT_OPTS
|
389
|
+
- bundle exec exe/gitlab-qa Test::Omnibus::Upgrade CE -- $RSPEC_REPORT_OPTS
|
390
390
|
extends:
|
391
391
|
- .test
|
392
392
|
- .high-capacity
|
@@ -397,7 +397,7 @@ ce:upgrade:
|
|
397
397
|
|
398
398
|
ce:upgrade-quarantine:
|
399
399
|
script:
|
400
|
-
- exe/gitlab-qa Test::Omnibus::Upgrade CE -- --tag quarantine --tag ~orchestrated $RSPEC_REPORT_OPTS
|
400
|
+
- bundle exec exe/gitlab-qa Test::Omnibus::Upgrade CE -- --tag quarantine --tag ~orchestrated $RSPEC_REPORT_OPTS
|
401
401
|
extends:
|
402
402
|
- .test
|
403
403
|
- .high-capacity
|
@@ -407,7 +407,7 @@ ce:upgrade-quarantine:
|
|
407
407
|
|
408
408
|
ee-previous-to-ce:update:
|
409
409
|
script:
|
410
|
-
- exe/gitlab-qa Test::Omnibus::Update EE CE -- $RSPEC_REPORT_OPTS
|
410
|
+
- bundle exec exe/gitlab-qa Test::Omnibus::Update EE CE -- $RSPEC_REPORT_OPTS
|
411
411
|
extends:
|
412
412
|
- .test
|
413
413
|
- .high-capacity
|
@@ -416,7 +416,7 @@ ee-previous-to-ce:update:
|
|
416
416
|
|
417
417
|
ee-previous-to-ce:update-quarantine:
|
418
418
|
script:
|
419
|
-
- exe/gitlab-qa Test::Omnibus::Update EE CE -- --tag quarantine --tag ~orchestrated $RSPEC_REPORT_OPTS
|
419
|
+
- bundle exec exe/gitlab-qa Test::Omnibus::Update EE CE -- --tag quarantine --tag ~orchestrated $RSPEC_REPORT_OPTS
|
420
420
|
extends:
|
421
421
|
- .test
|
422
422
|
- .high-capacity
|
@@ -719,7 +719,7 @@ ce:object_storage:
|
|
719
719
|
- .ce-qa
|
720
720
|
- .rspec-report-opts
|
721
721
|
variables:
|
722
|
-
|
722
|
+
GITLAB_QA_OPTS: "--omnibus-config object_storage"
|
723
723
|
|
724
724
|
ce:object_storage-quarantine:
|
725
725
|
extends:
|
@@ -729,7 +729,7 @@ ce:object_storage-quarantine:
|
|
729
729
|
- .quarantine
|
730
730
|
- .rspec-report-opts
|
731
731
|
variables:
|
732
|
-
|
732
|
+
GITLAB_QA_OPTS: "--omnibus-config object_storage"
|
733
733
|
|
734
734
|
ee:object_storage:
|
735
735
|
extends:
|
@@ -738,7 +738,7 @@ ee:object_storage:
|
|
738
738
|
- .ee-qa
|
739
739
|
- .rspec-report-opts
|
740
740
|
variables:
|
741
|
-
|
741
|
+
GITLAB_QA_OPTS: "--omnibus-config object_storage"
|
742
742
|
|
743
743
|
ee:object_storage-quarantine:
|
744
744
|
extends:
|
@@ -748,7 +748,7 @@ ee:object_storage-quarantine:
|
|
748
748
|
- .quarantine
|
749
749
|
- .rspec-report-opts
|
750
750
|
variables:
|
751
|
-
|
751
|
+
GITLAB_QA_OPTS: "--omnibus-config object_storage"
|
752
752
|
|
753
753
|
ee:packages:
|
754
754
|
extends:
|
@@ -757,7 +757,7 @@ ee:packages:
|
|
757
757
|
- .ee-qa
|
758
758
|
- .rspec-report-opts
|
759
759
|
variables:
|
760
|
-
|
760
|
+
GITLAB_QA_OPTS: "--omnibus-config packages"
|
761
761
|
|
762
762
|
ee:packages-quarantine:
|
763
763
|
extends:
|
@@ -767,7 +767,7 @@ ee:packages-quarantine:
|
|
767
767
|
- .quarantine
|
768
768
|
- .rspec-report-opts
|
769
769
|
variables:
|
770
|
-
|
770
|
+
GITLAB_QA_OPTS: "--omnibus-config packages"
|
771
771
|
|
772
772
|
ce:actioncable:
|
773
773
|
extends:
|
@@ -989,8 +989,8 @@ ee:jira-quarantine:
|
|
989
989
|
staging:
|
990
990
|
script:
|
991
991
|
- unset EE_LICENSE
|
992
|
-
- 'echo "Running: exe/gitlab-qa Test::Instance::Staging ${RELEASE:=$DEFAULT_RELEASE} -- $QA_TESTS $QA_RSPEC_TAGS"'
|
993
|
-
- exe/gitlab-qa Test::Instance::Staging ${RELEASE:=$DEFAULT_RELEASE} -- $QA_TESTS $QA_RSPEC_TAGS
|
992
|
+
- 'echo "Running: bundle exec exe/gitlab-qa Test::Instance::Staging ${RELEASE:=$DEFAULT_RELEASE} -- $QA_TESTS $QA_RSPEC_TAGS"'
|
993
|
+
- bundle exec exe/gitlab-qa Test::Instance::Staging ${RELEASE:=$DEFAULT_RELEASE} -- $QA_TESTS $QA_RSPEC_TAGS
|
994
994
|
extends:
|
995
995
|
- .test
|
996
996
|
- .high-capacity
|
@@ -1011,7 +1011,7 @@ generate_test_session:
|
|
1011
1011
|
- REPORT_ISSUE_URL
|
1012
1012
|
script:
|
1013
1013
|
- export GITLAB_QA_ACCESS_TOKEN="$GITLAB_QA_PRODUCTION_ACCESS_TOKEN"
|
1014
|
-
- exe/gitlab-qa-report --generate-test-session "gitlab-qa-run-*/**/rspec-*.json" --project "$QA_TESTCASE_SESSIONS_PROJECT"
|
1014
|
+
- bundle exec exe/gitlab-qa-report --generate-test-session "gitlab-qa-run-*/**/rspec-*.json" --project "$QA_TESTCASE_SESSIONS_PROJECT"
|
1015
1015
|
|
1016
1016
|
relate_test_failures:
|
1017
1017
|
stage: report
|
@@ -1029,7 +1029,7 @@ relate_test_failures:
|
|
1029
1029
|
QA_FAILURES_REPORTER_OPTIONS: ""
|
1030
1030
|
script:
|
1031
1031
|
- export GITLAB_QA_ACCESS_TOKEN="$GITLAB_QA_PRODUCTION_ACCESS_TOKEN"
|
1032
|
-
- exe/gitlab-qa-report --relate-failure-issue "gitlab-qa-run-*/**/rspec-*.json" --project "$QA_FAILURES_REPORTING_PROJECT" --max-diff-ratio "$QA_FAILURES_MAX_DIFF_RATIO" $QA_FAILURES_REPORTER_OPTIONS
|
1032
|
+
- bundle exec exe/gitlab-qa-report --relate-failure-issue "gitlab-qa-run-*/**/rspec-*.json" --project "$QA_FAILURES_REPORTING_PROJECT" --max-diff-ratio "$QA_FAILURES_MAX_DIFF_RATIO" $QA_FAILURES_REPORTER_OPTIONS
|
1033
1033
|
|
1034
1034
|
.notify_upstream_commit:
|
1035
1035
|
stage: notify
|
@@ -534,6 +534,18 @@ $ gitlab-qa Test::Integration::Mattermost EE
|
|
534
534
|
|
535
535
|
### `Test::Integration::Packages CE|EE|<full image address>`
|
536
536
|
|
537
|
+
**Note: This Scenario no longer exists. See https://gitlab.com/gitlab-org/gitlab-qa/-/merge_requests/662**
|
538
|
+
|
539
|
+
To run Packages tests, you may [configure Omnibus](configuring_omnibus.md) to use the [Packages](https://gitlab.com/gitlab-org/gitlab-qa/-/blob/master/lib/gitlab/qa/runtime/omnibus_configurations/packages.rb) configurator.
|
540
|
+
|
541
|
+
Example:
|
542
|
+
|
543
|
+
```
|
544
|
+
$ export EE_LICENSE=$(cat /path/to/Geo.gitlab_license)
|
545
|
+
|
546
|
+
$ gitlab-qa Test::Instance::Image EE --omnibus-config packages
|
547
|
+
```
|
548
|
+
|
537
549
|
This tests the GitLab Package Registry feature by setting
|
538
550
|
`gitlab_rails['packages_enabled'] = true` in the Omnibus configuration
|
539
551
|
before starting the GitLab container.
|
@@ -547,14 +559,6 @@ which runs only the tests with `:packages` metadata.
|
|
547
559
|
|
548
560
|
- `EE_LICENSE`: A valid EE license.
|
549
561
|
|
550
|
-
Example:
|
551
|
-
|
552
|
-
```
|
553
|
-
$ export EE_LICENSE=$(cat /path/to/Geo.gitlab_license)
|
554
|
-
|
555
|
-
$ gitlab-qa Test::Integration::Packages EE
|
556
|
-
```
|
557
|
-
|
558
562
|
### `Test::Integration::Praefect CE|EE|<full image address>`
|
559
563
|
|
560
564
|
This tests [Praefect](https://docs.gitlab.com/ee/administration/gitaly/praefect.html),
|
data/gitlab-qa.gemspec
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
lib = File.expand_path('lib', __dir__)
|
2
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
5
|
require 'gitlab/qa/version'
|
@@ -5,11 +7,11 @@ require 'gitlab/qa/version'
|
|
5
7
|
Gem::Specification.new do |spec|
|
6
8
|
spec.name = 'gitlab-qa'
|
7
9
|
spec.version = Gitlab::QA::VERSION
|
8
|
-
spec.authors = ['
|
9
|
-
spec.email = ['
|
10
|
+
spec.authors = ['GitLab Quality']
|
11
|
+
spec.email = ['gitlab-qa@gmail.com']
|
10
12
|
|
11
13
|
spec.summary = 'Integration tests for GitLab'
|
12
|
-
spec.homepage = 'http://about.gitlab.com'
|
14
|
+
spec.homepage = 'http://about.gitlab.com/'
|
13
15
|
spec.license = 'MIT'
|
14
16
|
|
15
17
|
spec.files = `git ls-files -z`
|
@@ -78,7 +78,7 @@ module Gitlab
|
|
78
78
|
end
|
79
79
|
|
80
80
|
def start # rubocop:disable Metrics/AbcSize
|
81
|
-
docker.run(image, tag) do |command|
|
81
|
+
docker.run(image: image, tag: tag) do |command|
|
82
82
|
command << "-d"
|
83
83
|
command << "--name #{name}"
|
84
84
|
command << "--net #{network}"
|
@@ -129,7 +129,7 @@ module Gitlab
|
|
129
129
|
def pull
|
130
130
|
return if Runtime::Env.skip_pull?
|
131
131
|
|
132
|
-
docker.pull(image, tag)
|
132
|
+
docker.pull(image: image, tag: tag)
|
133
133
|
end
|
134
134
|
|
135
135
|
def process_exec_commands
|
@@ -33,7 +33,7 @@ module Gitlab
|
|
33
33
|
@volumes[GITLAB_CERTIFICATES_PATH] = SSL_PATH
|
34
34
|
@volumes[AUTHORITY_CERTIFICATES_PATH] = TRUSTED_PATH
|
35
35
|
|
36
|
-
@omnibus_configuration ||= OmnibusConfiguration.new
|
36
|
+
@omnibus_configuration ||= Runtime::OmnibusConfiguration.new(Runtime::Scenario.omnibus_configuration)
|
37
37
|
|
38
38
|
self.release = 'CE'
|
39
39
|
end
|
@@ -100,7 +100,7 @@ module Gitlab
|
|
100
100
|
def start # rubocop:disable Metrics/AbcSize
|
101
101
|
ensure_configured!
|
102
102
|
|
103
|
-
docker.run(image, tag) do |command|
|
103
|
+
docker.run(image: image, tag: tag) do |command|
|
104
104
|
command << "-d -p #{port}"
|
105
105
|
command << "--name #{name}"
|
106
106
|
command << "--net #{network}"
|
@@ -206,20 +206,6 @@ module Gitlab
|
|
206
206
|
@uri.scheme == 'https' ? { use_ssl: true, verify_mode: OpenSSL::SSL::VERIFY_NONE } : {}
|
207
207
|
end
|
208
208
|
end
|
209
|
-
|
210
|
-
class OmnibusConfiguration
|
211
|
-
def initialize
|
212
|
-
@config = Runtime::Scenario.attributes[:omnibus_configuration] || []
|
213
|
-
end
|
214
|
-
|
215
|
-
def <<(configuration)
|
216
|
-
@config << configuration
|
217
|
-
end
|
218
|
-
|
219
|
-
def to_s
|
220
|
-
@config.to_s
|
221
|
-
end
|
222
|
-
end
|
223
209
|
end
|
224
210
|
end
|
225
211
|
end
|
@@ -49,7 +49,10 @@ module Gitlab
|
|
49
49
|
def start
|
50
50
|
raise "Must set gitlab_hostname" unless @gitlab_hostname
|
51
51
|
|
52
|
-
@docker.run(
|
52
|
+
@docker.run(
|
53
|
+
image: DOCKER_IMAGE,
|
54
|
+
tag: DOCKER_IMAGE_TAG,
|
55
|
+
args: ["-o StrictHostKeyChecking=no -N -R #{subdomain}:#{@gitlab_hostname}:80 #{ENV.fetch('TUNNEL_SSH_USER')}@#{tunnel_server_hostname}"]) do |command|
|
53
56
|
command << '-d '
|
54
57
|
command << "--name #{name}"
|
55
58
|
command << "--net #{network}"
|
@@ -63,7 +63,7 @@ module Gitlab
|
|
63
63
|
def start
|
64
64
|
# copy-service needed for bootstraping LDAP user:
|
65
65
|
# https://github.com/osixia/docker-openldap#seed-ldap-database-with-ldif
|
66
|
-
docker.run(image, tag, '--copy-service') do |command|
|
66
|
+
docker.run(image: image, tag: tag, args: ['--copy-service']) do |command|
|
67
67
|
command << '-d '
|
68
68
|
command << "--name #{name}"
|
69
69
|
command << "--net #{network}"
|
@@ -70,7 +70,7 @@ module Gitlab
|
|
70
70
|
def start # rubocop:disable Metrics/AbcSize
|
71
71
|
# --compat needed until https://gitlab.com/gitlab-org/gitlab-workhorse/issues/210
|
72
72
|
# is resolved
|
73
|
-
docker.run(image, tag, "server", "--compat", DATA_DIR) do |command|
|
73
|
+
docker.run(image: image, tag: tag, args: ["server", "--compat", DATA_DIR]) do |command|
|
74
74
|
command << '-d '
|
75
75
|
command << "--name #{name}"
|
76
76
|
command << "--net #{network}"
|
@@ -23,7 +23,7 @@ module Gitlab
|
|
23
23
|
|
24
24
|
@docker.login(**release.login_params) if release.login_params
|
25
25
|
|
26
|
-
@docker.pull(qa_image) unless Runtime::Env.skip_pull?
|
26
|
+
@docker.pull(image: qa_image) unless Runtime::Env.skip_pull?
|
27
27
|
|
28
28
|
puts "Running test suite `#{suite}` for #{release.project_name}"
|
29
29
|
|
@@ -43,7 +43,7 @@ module Gitlab
|
|
43
43
|
feature_flag_sets << [] unless feature_flag_sets.any?
|
44
44
|
|
45
45
|
feature_flag_sets.each do |feature_flag_set|
|
46
|
-
@docker.run(qa_image,
|
46
|
+
@docker.run(image: qa_image, args: [suite, *args_with_flags(args, feature_flag_set)]) do |command|
|
47
47
|
command << "-t --rm --net=#{network || 'bridge'}"
|
48
48
|
|
49
49
|
env.merge(Runtime::Env.variables).each do |key, value|
|
@@ -15,11 +15,11 @@ module Gitlab
|
|
15
15
|
Docker::Command.execute(%(login --username "#{username}" --password "#{password}" #{registry}), mask_secrets: password)
|
16
16
|
end
|
17
17
|
|
18
|
-
def pull(image
|
18
|
+
def pull(image:, tag: nil)
|
19
19
|
Docker::Command.execute("pull #{full_image_name(image, tag)}")
|
20
20
|
end
|
21
21
|
|
22
|
-
def run(image
|
22
|
+
def run(image:, tag: nil, args: [])
|
23
23
|
Docker::Command.new('run').tap do |command|
|
24
24
|
yield command if block_given?
|
25
25
|
|
data/lib/gitlab/qa/runner.rb
CHANGED
@@ -57,7 +57,10 @@ module Gitlab
|
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
60
|
-
|
60
|
+
# Remove arguments passed into GitLab QA preventing them from being
|
61
|
+
# passed into the specs
|
62
|
+
args = remove_gitlab_qa_args(args)
|
63
|
+
|
61
64
|
if args.size >= 1
|
62
65
|
load_omnibus_configurations
|
63
66
|
|
@@ -79,7 +82,22 @@ module Gitlab
|
|
79
82
|
end
|
80
83
|
|
81
84
|
def self.gitlab_qa_options
|
82
|
-
@gitlab_qa_options ||= @options.top.list
|
85
|
+
@gitlab_qa_options ||= @options.top.list
|
86
|
+
end
|
87
|
+
|
88
|
+
# Take a set of arguments and remove them from the set of
|
89
|
+
# predefined GitLab QA arguments
|
90
|
+
# @param args Array the arguments to parse through and remove GitLab QA opts
|
91
|
+
# @return Arguments to be passed ultimately to the RSpec runner
|
92
|
+
def self.remove_gitlab_qa_args(args)
|
93
|
+
args.each_with_index do |arg, i|
|
94
|
+
gitlab_qa_options.each do |opt|
|
95
|
+
next unless opt.long.flatten.first == arg
|
96
|
+
|
97
|
+
args[i] = nil
|
98
|
+
args[i + 1] = nil if opt.is_a? OptionParser::Switch::RequiredArgument
|
99
|
+
end
|
100
|
+
end.compact
|
83
101
|
end
|
84
102
|
|
85
103
|
def self.load_omnibus_configurations
|
@@ -100,8 +118,8 @@ module Gitlab
|
|
100
118
|
end
|
101
119
|
rescue NameError
|
102
120
|
raise <<~ERROR
|
103
|
-
|
104
|
-
|
121
|
+
Invalid Omnibus Configuration `#{config}`.
|
122
|
+
Possible configurations: #{Runtime::OmnibusConfigurations.constants.map { |c| c.to_s.underscore }.join(',')}"
|
105
123
|
ERROR
|
106
124
|
end
|
107
125
|
end
|
@@ -6,8 +6,18 @@ module Gitlab
|
|
6
6
|
module QA
|
7
7
|
module Runtime
|
8
8
|
class OmnibusConfiguration
|
9
|
-
|
9
|
+
# @param prefixed_config The configuration to be prefixed to the new configuration
|
10
|
+
def initialize(prefixed_config = nil)
|
10
11
|
@config = ["# Generated by GitLab QA Omnibus Configurator at #{Time.now.strftime('%Y-%m-%d %H:%M:%S')}"]
|
12
|
+
|
13
|
+
return unless prefixed_config
|
14
|
+
|
15
|
+
# remove generation statement if it exists within the prefixed configuration that was passed
|
16
|
+
# and insert the rest AFTER the very first generation statement
|
17
|
+
config_to_insert = prefixed_config.to_s
|
18
|
+
generation_regexp = /# Generated by GitLab QA Omnibus Configurator.*\n/
|
19
|
+
config_to_insert = config_to_insert.gsub(generation_regexp, '') if config_to_insert.match?(generation_regexp)
|
20
|
+
@config.insert(1, config_to_insert)
|
11
21
|
end
|
12
22
|
|
13
23
|
def to_s
|
@@ -28,19 +38,20 @@ module Gitlab
|
|
28
38
|
[]
|
29
39
|
end
|
30
40
|
|
31
|
-
# Ensures no duplicate entries
|
41
|
+
# Ensures no duplicate entries and sanitizes configurations
|
32
42
|
# @raise RuntimeError if competing configurations exist
|
33
43
|
# rubocop:disable Metrics/AbcSize
|
34
44
|
def sanitize!
|
35
45
|
sanitized = @config.map do |config|
|
36
|
-
next config if config.start_with?('#') # allow for
|
46
|
+
next config if config.start_with?('#') || config.match(/\w+\(/) # allow for comments and method invocations
|
37
47
|
|
38
48
|
# sometimes "=" is part of a Hash. Only split based on the first "="
|
39
49
|
k, v = config.split("=", 2)
|
40
50
|
# make sure each config is well-formed
|
41
51
|
# e.g., gitlab_rails['packages_enabled'] = true
|
42
52
|
# NOT gitlab_rails['packages_enabled']=true
|
43
|
-
|
53
|
+
|
54
|
+
v.nil? ? k.strip : "#{k.strip} = #{v.strip.tr('"', "'")}".strip
|
44
55
|
end.uniq
|
45
56
|
|
46
57
|
errors = []
|
@@ -131,8 +131,7 @@ module Gitlab
|
|
131
131
|
|
132
132
|
def gitaly_omnibus_configuration
|
133
133
|
<<~OMNIBUS
|
134
|
-
#{disable_other_services}
|
135
|
-
prometheus['enable'] = true;
|
134
|
+
#{disable_other_services.sub(/(prometheus\['enable'\]) = false/, '\1 = true')}
|
136
135
|
prometheus_monitoring['enable'] = false;
|
137
136
|
gitaly['enable'] = true;
|
138
137
|
gitaly['listen_addr'] = '0.0.0.0:8075';
|
@@ -27,7 +27,7 @@ module Gitlab
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def ldap_servers_omnibus_config
|
30
|
-
|
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
|
data/lib/gitlab/qa/version.rb
CHANGED
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.0.
|
4
|
+
version: 7.0.5
|
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-03-
|
11
|
+
date: 2021-03-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: climate_control
|
@@ -194,7 +194,7 @@ dependencies:
|
|
194
194
|
version: 1.5.7
|
195
195
|
description:
|
196
196
|
email:
|
197
|
-
-
|
197
|
+
- gitlab-qa@gmail.com
|
198
198
|
executables:
|
199
199
|
- gitlab-qa
|
200
200
|
- gitlab-qa-report
|
@@ -333,7 +333,7 @@ files:
|
|
333
333
|
- tls_certificates/gitlab/gitlab.test.crt
|
334
334
|
- tls_certificates/gitlab/gitlab.test.csr
|
335
335
|
- tls_certificates/gitlab/gitlab.test.key
|
336
|
-
homepage: http://about.gitlab.com
|
336
|
+
homepage: http://about.gitlab.com/
|
337
337
|
licenses:
|
338
338
|
- MIT
|
339
339
|
metadata: {}
|