gitlab-qa 7.26.0 → 7.27.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.
- checksums.yaml +4 -4
- data/.gitlab/ci/jobs/base.gitlab-ci.yml +5 -11
- data/.gitlab/ci/jobs/ci_decomposition.gitlab-ci.yml +27 -0
- data/.gitlab-ci.yml +8 -3
- data/docs/configuring_omnibus.md +4 -4
- data/docs/what_tests_can_be_run.md +10 -17
- data/lib/gitlab/qa/component/base.rb +17 -5
- data/lib/gitlab/qa/component/elasticsearch.rb +1 -0
- data/lib/gitlab/qa/component/gitlab.rb +2 -3
- data/lib/gitlab/qa/report/relate_failure_issue.rb +13 -4
- data/lib/gitlab/qa/report/test_result.rb +7 -0
- data/lib/gitlab/qa/runtime/omnibus_configurations/object_storage.rb +8 -10
- data/lib/gitlab/qa/scenario/test/instance/image.rb +3 -1
- data/lib/gitlab/qa/scenario/test/integration/registry_with_cdn.rb +1 -0
- data/lib/gitlab/qa/scenario/test/omnibus/upgrade.rb +1 -0
- data/lib/gitlab/qa/version.rb +1 -1
- data/lib/gitlab/qa.rb +0 -1
- data/scripts/generate-qa-jobs.rb +1 -1
- metadata +3 -4
- data/.gitlab/ci/jobs/actioncable.gitlab-ci.yml +0 -41
- data/lib/gitlab/qa/scenario/test/integration/actioncable.rb +0 -34
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 888a15b623b94cf6a072af7edf18d11952ff971a661d1fd4d154b28a627c9509
|
|
4
|
+
data.tar.gz: c5e6cb25a0ecda8f4237186249ec44b246254df78b26e1372569500c00901c6c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 17a2b9f2863cf42a36f5e72e39a90b17ad00367be81ec2f5e61b35299086e470f227d46c5e1b186abb52c49bab82d6289010a0e4e1410f74d51e779a1cfadec0
|
|
7
|
+
data.tar.gz: cfb21124fbd588d157ce8f93fb83300fdb521ddfbfde2e1fd4853aa966cf418075607496671aa5a739656d33acead7524e607076945b305279fa4db94d61a80c
|
|
@@ -245,14 +245,12 @@ generate-allure-report:
|
|
|
245
245
|
cache:
|
|
246
246
|
policy: pull
|
|
247
247
|
before_script:
|
|
248
|
-
# Override allure variables for upstream triggers
|
|
249
|
-
# Override default before script and don't push cache
|
|
250
248
|
- export STORAGE_CREDENTIALS=$QA_ALLURE_REPORT_GCS_CREDENTIALS
|
|
251
249
|
- export GITLAB_AUTH_TOKEN=$GITLAB_QA_MR_ALLURE_REPORT_TOKEN
|
|
252
|
-
|
|
253
|
-
- export ALLURE_MERGE_REQUEST_IID=$TOP_UPSTREAM_MERGE_REQUEST_IID
|
|
254
|
-
- export
|
|
255
|
-
- export
|
|
250
|
+
# Set allure variables for merge request comment based on pipeline source
|
|
251
|
+
- export ALLURE_MERGE_REQUEST_IID=${TOP_UPSTREAM_MERGE_REQUEST_IID:-$CI_MERGE_REQUEST_IID}
|
|
252
|
+
- export ALLURE_PROJECT_PATH=${TOP_UPSTREAM_SOURCE_PROJECT:-$CI_MERGE_REQUEST_PROJECT_PATH}
|
|
253
|
+
- export ALLURE_COMMIT_SHA=${TOP_UPSTREAM_SOURCE_SHA:-$CI_MERGE_REQUEST_SOURCE_BRANCH_SHA}
|
|
256
254
|
rules:
|
|
257
255
|
# Don't run report generation on release pipelines
|
|
258
256
|
- if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_PATH == "gitlab-org/gitlab-qa" && $RELEASE == null'
|
|
@@ -260,11 +258,7 @@ generate-allure-report:
|
|
|
260
258
|
when: never
|
|
261
259
|
- if: '$CI_COMMIT_TAG'
|
|
262
260
|
when: never
|
|
263
|
-
- if: '$
|
|
264
|
-
variables:
|
|
265
|
-
ALLURE_JOB_NAME: gitlab-qa
|
|
266
|
-
when: always
|
|
267
|
-
- if: '$TOP_UPSTREAM_SOURCE_PROJECT != null && $TOP_UPSTREAM_SOURCE_PROJECT != "" && $TOP_UPSTREAM_SOURCE_SHA != null && $TOP_UPSTREAM_SOURCE_SHA != ""'
|
|
261
|
+
- if: '$ALLURE_JOB_NAME'
|
|
268
262
|
when: always
|
|
269
263
|
|
|
270
264
|
generate-knapsack-report:
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
ce:ci_decomposition:
|
|
2
|
+
extends:
|
|
3
|
+
- .rules:ce-never-when-triggered-by-feature-flag-definition-change
|
|
4
|
+
- .rules:ce-never-when-qa-tests-specified
|
|
5
|
+
- .test
|
|
6
|
+
- .high-capacity
|
|
7
|
+
- .ce-variables
|
|
8
|
+
- .rspec-report-opts
|
|
9
|
+
- .combined-gitlab-qa-options-script
|
|
10
|
+
parallel: 5
|
|
11
|
+
variables:
|
|
12
|
+
GITLAB_QA_OPTIONS_COMBINED: "$GITLAB_QA_OPTIONS --omnibus-config ci_decomposition"
|
|
13
|
+
allow_failure: true # https://gitlab.com/gitlab-org/quality/team-tasks/-/issues/1329
|
|
14
|
+
|
|
15
|
+
ee:ci_decomposition:
|
|
16
|
+
extends:
|
|
17
|
+
- .rules:ee-never-when-triggered-by-feature-flag-definition-change
|
|
18
|
+
- .rules:ee-never-when-qa-tests-specified
|
|
19
|
+
- .test
|
|
20
|
+
- .ee-variables
|
|
21
|
+
- .high-capacity
|
|
22
|
+
- .rspec-report-opts
|
|
23
|
+
- .combined-gitlab-qa-options-script
|
|
24
|
+
parallel: 5
|
|
25
|
+
variables:
|
|
26
|
+
GITLAB_QA_OPTIONS_COMBINED: "$GITLAB_QA_OPTIONS --omnibus-config ci_decomposition"
|
|
27
|
+
allow_failure: true # https://gitlab.com/gitlab-org/quality/team-tasks/-/issues/1329
|
data/.gitlab-ci.yml
CHANGED
|
@@ -25,12 +25,18 @@ workflow:
|
|
|
25
25
|
rules:
|
|
26
26
|
# For merge requests, create a pipeline.
|
|
27
27
|
- if: '$CI_MERGE_REQUEST_IID'
|
|
28
|
+
variables:
|
|
29
|
+
ALLURE_JOB_NAME: gitlab-qa
|
|
28
30
|
# For the default branch, create a pipeline (this includes on schedules, pushes, merges, etc.).
|
|
29
31
|
- if: '$CI_COMMIT_BRANCH == "master"'
|
|
30
|
-
|
|
31
|
-
|
|
32
|
+
variables:
|
|
33
|
+
ALLURE_JOB_NAME: gitlab-qa
|
|
32
34
|
# For triggers from GitLab MR pipelines (and pipelines from other projects), create a pipeline
|
|
33
35
|
- if: '$CI_PIPELINE_SOURCE == "pipeline"'
|
|
36
|
+
variables:
|
|
37
|
+
ALLURE_JOB_NAME: package-and-qa
|
|
38
|
+
# For tags, create a pipeline.
|
|
39
|
+
- if: '$CI_COMMIT_TAG'
|
|
34
40
|
# When using Run pipeline button in the GitLab UI, from the project’s CI/CD > Pipelines section, create a pipeline.
|
|
35
41
|
- if: '$CI_PIPELINE_SOURCE == "web"'
|
|
36
42
|
|
|
@@ -94,7 +100,6 @@ generate-jobs:
|
|
|
94
100
|
- bundle exec bin/qa Test::Instance::All http://dummy.test --count-examples-only -- $QA_TESTS --tag repository_storage
|
|
95
101
|
- bundle exec bin/qa Test::Instance::All http://dummy.test --count-examples-only -- $QA_TESTS --tag packages
|
|
96
102
|
- bundle exec bin/qa Test::Instance::All http://dummy.test --count-examples-only -- $QA_TESTS --tag integrations
|
|
97
|
-
- bundle exec bin/qa Test::Instance::All http://dummy.test --count-examples-only -- $QA_TESTS --tag actioncable
|
|
98
103
|
- bundle exec bin/qa Test::Instance::All http://dummy.test --count-examples-only -- $QA_TESTS --tag mtls
|
|
99
104
|
- bundle exec bin/qa Test::Instance::All http://dummy.test --count-examples-only -- $QA_TESTS --tag jira
|
|
100
105
|
- bundle exec bin/qa Test::Instance::All http://dummy.test --count-examples-only -- $QA_TESTS --tag can_use_large_setup
|
data/docs/configuring_omnibus.md
CHANGED
|
@@ -106,7 +106,7 @@ Multiple Configurators may be specified and the order will be preserved in which
|
|
|
106
106
|
|
|
107
107
|
E.g., given the arguments:
|
|
108
108
|
|
|
109
|
-
```
|
|
109
|
+
```ruby
|
|
110
110
|
exe/gitlab-qa Test::Instance::Image EE --omnibus-config packages,registry
|
|
111
111
|
# or
|
|
112
112
|
exe/gitlab-qa Test::Instance::Image EE --omnibus-config packages --omnibus-config registry
|
|
@@ -136,7 +136,7 @@ Component::Gitlab.perform do |primary|
|
|
|
136
136
|
primary.omnibus_configuration << <<~OMNIBUS
|
|
137
137
|
geo_primary_role['enable'] = true
|
|
138
138
|
OMNIBUS
|
|
139
|
-
|
|
139
|
+
|
|
140
140
|
primary.instance do
|
|
141
141
|
Component::Gitlab.perform do |secondary|
|
|
142
142
|
secondary.omnibus_configuration << <<~OMNIBUS
|
|
@@ -181,10 +181,10 @@ one Omnibus configuration that might be unneccesary or Invalid for the Second In
|
|
|
181
181
|
|
|
182
182
|
1. `Runtime::OmnibusConfigurations::Default`
|
|
183
183
|
1. `Runtime::OmnibusConfigurations::[A,B,...]` where `A` and `B` are Configurators specified through the positional arguments `--a --b`
|
|
184
|
-
1. Custom written `Scenario::Template` (such as `Test::
|
|
184
|
+
1. Custom written `Scenario::Template` (such as `Test::Integration::Geo`)
|
|
185
185
|
1. `lib/gitlab/qa/component/gitlab.rb`
|
|
186
186
|
|
|
187
|
-
From top to bottom, configurations will be loaded and any configurations that are
|
|
187
|
+
From top to bottom, configurations will be loaded and any configurations that are superseded, will take precedence over the one before it, and so on.
|
|
188
188
|
|
|
189
189
|
### Executing arbitrary shell commands within the GitLab Instance
|
|
190
190
|
|
|
@@ -637,6 +637,8 @@ container is spun up and tests are run from it by running the
|
|
|
637
637
|
- `JIRA_ADMIN_USERNAME`: Username for authenticating with Jira server as admin.
|
|
638
638
|
- `JIRA_ADMIN_PASSWORD`: Password for authenticating with Jira server as admin.
|
|
639
639
|
|
|
640
|
+
These values can be found in the shared GitLab QA 1Password vault.
|
|
641
|
+
|
|
640
642
|
Example:
|
|
641
643
|
|
|
642
644
|
```
|
|
@@ -649,23 +651,6 @@ $ export EE_LICENSE=$(cat /path/to/GitLab.gitlab_license)
|
|
|
649
651
|
$ gitlab-qa Test::Integration::Jira EE
|
|
650
652
|
```
|
|
651
653
|
|
|
652
|
-
### `Test::Integration::Actioncable CE|EE|<full image address>`
|
|
653
|
-
|
|
654
|
-
This tests the real-time assignees feature by setting
|
|
655
|
-
`actioncable['enable'] = true` in the Omnibus configuration
|
|
656
|
-
before starting the GitLab container.
|
|
657
|
-
|
|
658
|
-
To run tests against the GitLab container, a GitLab QA (`gitlab/gitlab-qa`)
|
|
659
|
-
container is spun up and tests are run from it by running the
|
|
660
|
-
`Test::Instance::All` scenario with the `--tag actioncable` RSpec parameter,
|
|
661
|
-
which runs only the tests with `:actioncable` metadata.
|
|
662
|
-
|
|
663
|
-
Example:
|
|
664
|
-
|
|
665
|
-
```
|
|
666
|
-
$ gitlab-qa Test::Integration::Actioncable CE
|
|
667
|
-
```
|
|
668
|
-
|
|
669
654
|
### `Test::Integration::Integrations CE|<full image address>`
|
|
670
655
|
|
|
671
656
|
This scenario is intended to test the different integrations that a GitLab instance can offer, such as WebHooks to an external service, Jenkins, etc.
|
|
@@ -942,6 +927,14 @@ This scenario is a composition of two orchestrated scenarios. It tests the conta
|
|
|
942
927
|
GITLAB_TLS_CERTIFICATE=$(cat /path/to/certificate.crt) gitlab-qa Test::Integration::RegistryTLS EE --omnibus-config object_storage_aws
|
|
943
928
|
```
|
|
944
929
|
|
|
930
|
+
### Test::Instance::Image EE --omnibus-config ci_decomposition
|
|
931
|
+
|
|
932
|
+
This scenario is to run tests against GitLab instance with [decomposed database](https://gitlab.com/groups/gitlab-org/-/epics/6160) on a single Postgres:
|
|
933
|
+
|
|
934
|
+
```ruby
|
|
935
|
+
gitlab-qa Test::Instance::Image EE --omnibus-config ci_decomposition
|
|
936
|
+
```
|
|
937
|
+
|
|
945
938
|
### `Test::Instance::Geo EE|<full image address>:nightly|latest|any_tag http://geo-primary.gitlab http://geo-secondary.gitlab`
|
|
946
939
|
|
|
947
940
|
This scenario will run tests tagged `:geo` against a live Geo deployment, by spinning up a GitLab QA (`gitlab/gitlab-qa`)
|
|
@@ -146,11 +146,23 @@ module Gitlab
|
|
|
146
146
|
end
|
|
147
147
|
|
|
148
148
|
def instance_no_teardown
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
149
|
+
begin
|
|
150
|
+
retries ||= 0
|
|
151
|
+
prepare
|
|
152
|
+
start
|
|
153
|
+
reconfigure
|
|
154
|
+
wait_until_ready
|
|
155
|
+
process_exec_commands
|
|
156
|
+
rescue Docker::Shellout::StatusError => e
|
|
157
|
+
# for scenarios where a service fails during startup, attempt to retry to avoid flaky failures
|
|
158
|
+
if (retries += 1) < 3
|
|
159
|
+
puts "Retry instance_no_teardown due to Docker::Shellout::StatusError -- attempt #{retries}"
|
|
160
|
+
teardown!
|
|
161
|
+
retry
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
raise e
|
|
165
|
+
end
|
|
154
166
|
|
|
155
167
|
yield self if block_given?
|
|
156
168
|
end
|
|
@@ -157,8 +157,7 @@ module Gitlab
|
|
|
157
157
|
@docker.attach(name) do |line, wait|
|
|
158
158
|
puts line
|
|
159
159
|
# TODO, workaround which allows to detach from the container
|
|
160
|
-
|
|
161
|
-
break if line =~ /gitlab Reconfigured!/
|
|
160
|
+
break if /gitlab Reconfigured!/.match?(line)
|
|
162
161
|
end
|
|
163
162
|
end
|
|
164
163
|
|
|
@@ -166,7 +165,6 @@ module Gitlab
|
|
|
166
165
|
return if skip_availability_check
|
|
167
166
|
|
|
168
167
|
if Availability.new(name, relative_path: relative_path, scheme: scheme, protocol_port: port.to_i).check(Runtime::Env.gitlab_availability_timeout)
|
|
169
|
-
sleep 12 # TODO, handle that better
|
|
170
168
|
puts ' -> GitLab is available.'
|
|
171
169
|
else
|
|
172
170
|
abort ' -> GitLab unavailable!'
|
|
@@ -178,6 +176,7 @@ module Gitlab
|
|
|
178
176
|
|
|
179
177
|
self.exec_commands += seed_admin_token_command if seed_admin_token
|
|
180
178
|
self.exec_commands += seed_test_data_command if seed_db
|
|
179
|
+
self.exec_commands += Runtime::Scenario.omnibus_exec_commands
|
|
181
180
|
|
|
182
181
|
Runtime::Logger.info("Running exec_commands...")
|
|
183
182
|
exec_commands.flatten.uniq.each { |command| @docker.exec(name, command) }
|
|
@@ -84,10 +84,17 @@ module Gitlab
|
|
|
84
84
|
end
|
|
85
85
|
end
|
|
86
86
|
|
|
87
|
+
def full_stacktrace(test)
|
|
88
|
+
if test.failures.first['message_lines'].empty?
|
|
89
|
+
test.failures.first['message']
|
|
90
|
+
else
|
|
91
|
+
test.failures.first['message_lines'].join("\n")
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
87
95
|
def find_relevant_failure_issues(test) # rubocop:disable Metrics/AbcSize
|
|
88
96
|
ld = Class.new.extend(Gem::Text).method(:levenshtein_distance)
|
|
89
|
-
|
|
90
|
-
first_test_failure_stacktrace = sanitize_stacktrace(full_stacktrace, FAILURE_STACKTRACE_REGEX) || full_stacktrace
|
|
97
|
+
first_test_failure_stacktrace = sanitize_stacktrace(full_stacktrace(test), FAILURE_STACKTRACE_REGEX) || full_stacktrace(test)
|
|
91
98
|
clean_first_test_failure_stacktrace = remove_unique_resource_names(first_test_failure_stacktrace)
|
|
92
99
|
|
|
93
100
|
# Search with the `search` param returns 500 errors, so we filter by ~QA and then filter further in Ruby
|
|
@@ -158,7 +165,7 @@ module Gitlab
|
|
|
158
165
|
def new_issue_description(test)
|
|
159
166
|
super + [
|
|
160
167
|
"\n\n### Stack trace",
|
|
161
|
-
"```\n#{test
|
|
168
|
+
"```\n#{full_stacktrace(test)}\n```",
|
|
162
169
|
"First happened in #{test.ci_job_url}.",
|
|
163
170
|
"Related test case: #{test.testcase}.",
|
|
164
171
|
screenshot_section(test)
|
|
@@ -201,7 +208,9 @@ module Gitlab
|
|
|
201
208
|
def screenshot_section(test)
|
|
202
209
|
section = ''
|
|
203
210
|
|
|
204
|
-
|
|
211
|
+
failure = full_stacktrace(test)
|
|
212
|
+
|
|
213
|
+
if test.screenshot? && !failure.include?('500 Internal Server Error') && !failure.include?('fabricate_via_api!')
|
|
205
214
|
relative_url = gitlab.upload_file(file_fullpath: test.failure_screenshot)
|
|
206
215
|
|
|
207
216
|
section = "### Screenshot: #{relative_url.markdown}"
|
|
@@ -114,6 +114,9 @@ module Gitlab
|
|
|
114
114
|
line.include?(File.basename(report['file_path']))
|
|
115
115
|
end
|
|
116
116
|
|
|
117
|
+
exception['message'].gsub!(/(private_token=)[\w-]+/, '********')
|
|
118
|
+
exception['message_lines'].each { |line| line.gsub!(/(private_token=)([\w-]+)/, '********') }
|
|
119
|
+
|
|
117
120
|
{
|
|
118
121
|
'message' => "#{exception['class']}: #{exception['message']}",
|
|
119
122
|
'message_lines' => exception['message_lines'],
|
|
@@ -145,6 +148,7 @@ module Gitlab
|
|
|
145
148
|
|
|
146
149
|
private
|
|
147
150
|
|
|
151
|
+
# rubocop:disable Metrics/AbcSize
|
|
148
152
|
def failures_from_exceptions
|
|
149
153
|
failures = report.search('failure')
|
|
150
154
|
return [] if failures.empty?
|
|
@@ -155,12 +159,15 @@ module Gitlab
|
|
|
155
159
|
line.include?(File.basename(report['file']))
|
|
156
160
|
end
|
|
157
161
|
|
|
162
|
+
exception['message'].gsub!(/(private_token=)[\w-]+/, '********')
|
|
163
|
+
|
|
158
164
|
{
|
|
159
165
|
'message' => "#{exception['type']}: #{exception['message']}",
|
|
160
166
|
'stacktrace' => trace.slice(0..spec_file_first_index).join("\n")
|
|
161
167
|
}
|
|
162
168
|
end
|
|
163
169
|
end
|
|
170
|
+
# rubocop:enable Metrics/AbcSize
|
|
164
171
|
end
|
|
165
172
|
end
|
|
166
173
|
end
|
|
@@ -5,21 +5,19 @@ module Gitlab
|
|
|
5
5
|
module Runtime
|
|
6
6
|
module OmnibusConfigurations
|
|
7
7
|
class ObjectStorage < Default
|
|
8
|
-
TYPES = %w[artifacts external_diffs lfs uploads packages dependency_proxy].freeze
|
|
8
|
+
TYPES = %w[artifacts external_diffs lfs uploads packages dependency_proxy terraform_state pages].freeze
|
|
9
9
|
|
|
10
10
|
def configuration
|
|
11
|
-
TYPES.each_with_object(+'') do |object_type, omnibus|
|
|
11
|
+
config = TYPES.each_with_object(+'') do |object_type, omnibus|
|
|
12
12
|
omnibus << <<~OMNIBUS
|
|
13
|
-
gitlab_rails['#{object_type}
|
|
14
|
-
gitlab_rails['#{object_type}_storage_path'] = '/var/opt/gitlab/gitlab-rails/shared/#{object_type}'
|
|
15
|
-
gitlab_rails['#{object_type}_object_store_enabled'] = true
|
|
16
|
-
gitlab_rails['#{object_type}_object_store_remote_directory'] = '#{object_type}-bucket'
|
|
17
|
-
gitlab_rails['#{object_type}_object_store_background_upload'] = false
|
|
18
|
-
gitlab_rails['#{object_type}_object_store_direct_upload'] = true
|
|
19
|
-
gitlab_rails['#{object_type}_object_store_proxy_download'] = true
|
|
20
|
-
gitlab_rails['#{object_type}_object_store_connection'] = #{minio.to_config}
|
|
13
|
+
gitlab_rails['object_store']['objects']['#{object_type}']['bucket'] = '#{object_type}-bucket'
|
|
21
14
|
OMNIBUS
|
|
22
15
|
end
|
|
16
|
+
config << <<~OMNIBUS
|
|
17
|
+
gitlab_rails['object_store']['enabled'] = true
|
|
18
|
+
gitlab_rails['object_store']['proxy_download'] = true
|
|
19
|
+
gitlab_rails['object_store']['connection'] = #{minio.to_config}
|
|
20
|
+
OMNIBUS
|
|
23
21
|
end
|
|
24
22
|
|
|
25
23
|
def prepare
|
|
@@ -4,10 +4,11 @@ module Gitlab
|
|
|
4
4
|
module Test
|
|
5
5
|
module Instance
|
|
6
6
|
class Image < Scenario::Template
|
|
7
|
-
attr_writer :volumes
|
|
7
|
+
attr_writer :volumes, :seed_admin_token
|
|
8
8
|
|
|
9
9
|
def initialize
|
|
10
10
|
@volumes = {}
|
|
11
|
+
@seed_admin_token = true
|
|
11
12
|
end
|
|
12
13
|
|
|
13
14
|
def perform(release, *rspec_args)
|
|
@@ -15,6 +16,7 @@ module Gitlab
|
|
|
15
16
|
gitlab.release = release
|
|
16
17
|
gitlab.volumes = @volumes
|
|
17
18
|
gitlab.network = 'test'
|
|
19
|
+
gitlab.seed_admin_token = @seed_admin_token
|
|
18
20
|
|
|
19
21
|
gitlab.instance do
|
|
20
22
|
Component::Specs.perform do |specs|
|
|
@@ -13,6 +13,7 @@ module Gitlab
|
|
|
13
13
|
gitlab.release = release
|
|
14
14
|
gitlab.network = 'test'
|
|
15
15
|
gitlab.name = 'gitlab'
|
|
16
|
+
gitlab.seed_admin_token = false
|
|
16
17
|
sign_url_key_path = gitlab.copy_key_file('GOOGLE_CDN_SIGNURL_KEY')
|
|
17
18
|
cdn_gcloud_path = gitlab.copy_key_file('GOOGLE_CDN_JSON_KEY')
|
|
18
19
|
|
data/lib/gitlab/qa/version.rb
CHANGED
data/lib/gitlab/qa.rb
CHANGED
|
@@ -55,7 +55,6 @@ module Gitlab
|
|
|
55
55
|
end
|
|
56
56
|
|
|
57
57
|
module Integration
|
|
58
|
-
autoload :Actioncable, 'gitlab/qa/scenario/test/integration/actioncable'
|
|
59
58
|
autoload :Geo, 'gitlab/qa/scenario/test/integration/geo'
|
|
60
59
|
autoload :LDAP, 'gitlab/qa/scenario/test/integration/ldap'
|
|
61
60
|
autoload :LDAPNoTLS, 'gitlab/qa/scenario/test/integration/ldap_no_tls'
|
data/scripts/generate-qa-jobs.rb
CHANGED
|
@@ -15,6 +15,7 @@ class GenerateQAJobs
|
|
|
15
15
|
jobs.concat(load_yml_contents('custom_parallel'))
|
|
16
16
|
jobs.concat(load_yml_contents('instance')) if should_run?('test_instance_all')
|
|
17
17
|
jobs.concat(load_yml_contents('relative_url')) if should_run?('test_instance_all')
|
|
18
|
+
jobs.concat(load_yml_contents('ci_decomposition')) if should_run?('test_instance_all')
|
|
18
19
|
jobs.concat(load_yml_contents('repository_storage')) if should_run?('test_instance_all_repository_storage')
|
|
19
20
|
jobs.concat(load_yml_contents('omnibus_image'))
|
|
20
21
|
jobs.concat(load_yml_contents('update')) if should_run?('test_instance_all')
|
|
@@ -33,7 +34,6 @@ class GenerateQAJobs
|
|
|
33
34
|
jobs.concat(load_yml_contents('object_storage_registry_tls')) if should_run?('test_integration_registrytls')
|
|
34
35
|
jobs.concat(load_yml_contents('registry')) if should_run?('test_integration_registry')
|
|
35
36
|
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
37
|
jobs.concat(load_yml_contents('elasticsearch')) if should_run?('test_integration_elasticsearch')
|
|
38
38
|
jobs.concat(load_yml_contents('praefect')) if should_run?('test_instance_all')
|
|
39
39
|
jobs.concat(load_yml_contents('gitaly_cluster')) if should_run?('test_instance_all')
|
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.
|
|
4
|
+
version: 7.27.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: 2022-05-
|
|
11
|
+
date: 2022-05-23 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: climate_control
|
|
@@ -218,8 +218,8 @@ files:
|
|
|
218
218
|
- ".dockerignore"
|
|
219
219
|
- ".gitignore"
|
|
220
220
|
- ".gitlab-ci.yml"
|
|
221
|
-
- ".gitlab/ci/jobs/actioncable.gitlab-ci.yml"
|
|
222
221
|
- ".gitlab/ci/jobs/base.gitlab-ci.yml"
|
|
222
|
+
- ".gitlab/ci/jobs/ci_decomposition.gitlab-ci.yml"
|
|
223
223
|
- ".gitlab/ci/jobs/cloud_activation.gitlab-ci.yml"
|
|
224
224
|
- ".gitlab/ci/jobs/custom_parallel.gitlab-ci.yml"
|
|
225
225
|
- ".gitlab/ci/jobs/ee_previous_to_ce_update.gitlab-ci.yml"
|
|
@@ -363,7 +363,6 @@ files:
|
|
|
363
363
|
- lib/gitlab/qa/scenario/test/instance/staging_geo.rb
|
|
364
364
|
- lib/gitlab/qa/scenario/test/instance/staging_ref.rb
|
|
365
365
|
- lib/gitlab/qa/scenario/test/instance/staging_ref_geo.rb
|
|
366
|
-
- lib/gitlab/qa/scenario/test/integration/actioncable.rb
|
|
367
366
|
- lib/gitlab/qa/scenario/test/integration/client_ssl.rb
|
|
368
367
|
- lib/gitlab/qa/scenario/test/integration/elasticsearch.rb
|
|
369
368
|
- lib/gitlab/qa/scenario/test/integration/geo.rb
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
ce:actioncable:
|
|
2
|
-
extends:
|
|
3
|
-
- .rules:ce-never-when-triggered-by-feature-flag-definition-change
|
|
4
|
-
- .test
|
|
5
|
-
- .high-capacity
|
|
6
|
-
- .ce-variables
|
|
7
|
-
- .rspec-report-opts
|
|
8
|
-
variables:
|
|
9
|
-
QA_SCENARIO: "Test::Integration::Actioncable"
|
|
10
|
-
|
|
11
|
-
ce:actioncable-quarantine:
|
|
12
|
-
extends:
|
|
13
|
-
- .rules:ce-never-when-triggered-by-feature-flag-definition-change
|
|
14
|
-
- .test
|
|
15
|
-
- .high-capacity
|
|
16
|
-
- .ce-variables
|
|
17
|
-
- .quarantine
|
|
18
|
-
- .rspec-report-opts
|
|
19
|
-
variables:
|
|
20
|
-
QA_SCENARIO: "Test::Integration::Actioncable"
|
|
21
|
-
|
|
22
|
-
ee:actioncable:
|
|
23
|
-
extends:
|
|
24
|
-
- .rules:ee-never-when-triggered-by-feature-flag-definition-change
|
|
25
|
-
- .test
|
|
26
|
-
- .high-capacity
|
|
27
|
-
- .ee-variables
|
|
28
|
-
- .rspec-report-opts
|
|
29
|
-
variables:
|
|
30
|
-
QA_SCENARIO: "Test::Integration::Actioncable"
|
|
31
|
-
|
|
32
|
-
ee:actioncable-quarantine:
|
|
33
|
-
extends:
|
|
34
|
-
- .rules:ee-never-when-triggered-by-feature-flag-definition-change
|
|
35
|
-
- .test
|
|
36
|
-
- .high-capacity
|
|
37
|
-
- .ee-variables
|
|
38
|
-
- .quarantine
|
|
39
|
-
- .rspec-report-opts
|
|
40
|
-
variables:
|
|
41
|
-
QA_SCENARIO: "Test::Integration::Actioncable"
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
module Gitlab
|
|
2
|
-
module QA
|
|
3
|
-
module Scenario
|
|
4
|
-
module Test
|
|
5
|
-
module Integration
|
|
6
|
-
class Actioncable < 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-actioncable'
|
|
11
|
-
gitlab.network = 'test'
|
|
12
|
-
gitlab.omnibus_configuration << "actioncable['enable'] = true"
|
|
13
|
-
|
|
14
|
-
gitlab.instance do
|
|
15
|
-
Runtime::Logger.info('Running actioncable specs!')
|
|
16
|
-
|
|
17
|
-
rspec_args << "--" unless rspec_args.include?('--')
|
|
18
|
-
rspec_args << %w[--tag actioncable]
|
|
19
|
-
|
|
20
|
-
Component::Specs.perform do |specs|
|
|
21
|
-
specs.suite = 'Test::Instance::All'
|
|
22
|
-
specs.release = gitlab.release
|
|
23
|
-
specs.network = gitlab.network
|
|
24
|
-
specs.args = [gitlab.address, *rspec_args]
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|