gitlab-qa 7.26.0 → 7.27.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|