gitlab-qa 9.1.2 → 10.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitlab-ci.yml +106 -149
- data/.simplecov +9 -0
- data/Gemfile.lock +15 -1
- data/README.md +5 -4
- data/docs/what_tests_can_be_run.md +73 -35
- data/gitlab-qa.gemspec +3 -0
- data/lib/gitlab/qa/component/base.rb +8 -1
- data/lib/gitlab/qa/component/gitaly.rb +1 -1
- data/lib/gitlab/qa/component/gitlab.rb +2 -2
- data/lib/gitlab/qa/component/mock_server.rb +13 -0
- data/lib/gitlab/qa/report/gitlab_issue_client.rb +1 -1
- data/lib/gitlab/qa/report/relate_failure_issue.rb +116 -20
- data/lib/gitlab/qa/report/report_as_issue.rb +1 -1
- data/lib/gitlab/qa/report/test_result.rb +2 -1
- data/lib/gitlab/qa/reporter.rb +8 -0
- data/lib/gitlab/qa/runtime/env.rb +17 -4
- data/lib/gitlab/qa/runtime/omnibus_configurations/decomposition_multiple_db.rb +1 -1
- data/lib/gitlab/qa/scenario/test/integration/oauth.rb +68 -0
- data/lib/gitlab/qa/scenario/test/omnibus/update_from_previous.rb +3 -2
- data/lib/gitlab/qa/system_logs/finders/json_log_finder.rb +65 -0
- data/lib/gitlab/qa/system_logs/finders/rails/api_log_finder.rb +21 -0
- data/lib/gitlab/qa/system_logs/finders/rails/application_log_finder.rb +21 -0
- data/lib/gitlab/qa/system_logs/finders/rails/exception_log_finder.rb +21 -0
- data/lib/gitlab/qa/system_logs/finders/rails/graphql_log_finder.rb +21 -0
- data/lib/gitlab/qa/system_logs/log_types/log.rb +38 -0
- data/lib/gitlab/qa/system_logs/log_types/rails/api_log.rb +34 -0
- data/lib/gitlab/qa/system_logs/log_types/rails/application_log.rb +27 -0
- data/lib/gitlab/qa/system_logs/log_types/rails/exception_log.rb +23 -0
- data/lib/gitlab/qa/system_logs/log_types/rails/graphql_log.rb +30 -0
- data/lib/gitlab/qa/system_logs/shared_fields.rb +29 -0
- data/lib/gitlab/qa/system_logs/system_logs_formatter.rb +65 -0
- data/lib/gitlab/qa/version.rb +1 -1
- data/scripts/build-package-and-test-env +15 -0
- metadata +59 -47
- data/.gitlab/ci/jobs/airgapped.gitlab-ci.yml +0 -23
- data/.gitlab/ci/jobs/base.gitlab-ci.yml +0 -273
- data/.gitlab/ci/jobs/chaos.gitlab-ci.yml +0 -22
- data/.gitlab/ci/jobs/cloud_activation.gitlab-ci.yml +0 -24
- data/.gitlab/ci/jobs/custom_parallel.gitlab-ci.yml +0 -21
- data/.gitlab/ci/jobs/decomposition_multiple_db.gitlab-ci.yml +0 -27
- data/.gitlab/ci/jobs/decomposition_single_db.gitlab-ci.yml +0 -25
- data/.gitlab/ci/jobs/ee_previous_to_ce_update.gitlab-ci.yml +0 -18
- data/.gitlab/ci/jobs/elasticsearch.gitlab-ci.yml +0 -20
- data/.gitlab/ci/jobs/geo.gitlab-ci.yml +0 -18
- data/.gitlab/ci/jobs/gitaly_cluster.gitlab-ci.yml +0 -41
- data/.gitlab/ci/jobs/gitlab_pages.gitlab-ci.yml +0 -19
- data/.gitlab/ci/jobs/group_saml.gitlab-ci.yml +0 -20
- data/.gitlab/ci/jobs/instance.gitlab-ci.yml +0 -55
- data/.gitlab/ci/jobs/instance_saml.gitlab-ci.yml +0 -41
- data/.gitlab/ci/jobs/integrations.gitlab-ci.yml +0 -14
- data/.gitlab/ci/jobs/jira.gitlab-ci.yml +0 -41
- data/.gitlab/ci/jobs/large_setup.gitlab-ci.yml +0 -19
- data/.gitlab/ci/jobs/ldap_no_server.gitlab-ci.yml +0 -20
- data/.gitlab/ci/jobs/ldap_no_tls.gitlab-ci.yml +0 -41
- data/.gitlab/ci/jobs/ldap_tls.gitlab-ci.yml +0 -41
- data/.gitlab/ci/jobs/mattermost.gitlab-ci.yml +0 -41
- data/.gitlab/ci/jobs/metrics.gitlab-ci.yml +0 -41
- data/.gitlab/ci/jobs/mtls.gitlab-ci.yml +0 -19
- data/.gitlab/ci/jobs/object_storage.gitlab-ci.yml +0 -49
- data/.gitlab/ci/jobs/object_storage_aws.gitlab-ci.yml +0 -25
- data/.gitlab/ci/jobs/object_storage_gcs.gitlab-ci.yml +0 -23
- data/.gitlab/ci/jobs/object_storage_registry_tls.gitlab-ci.yml +0 -41
- data/.gitlab/ci/jobs/omnibus_image.gitlab-ci.yml +0 -15
- data/.gitlab/ci/jobs/omnibus_upgrade.gitlab-ci.yml +0 -28
- data/.gitlab/ci/jobs/opensearch.gitlab-ci.yml +0 -20
- data/.gitlab/ci/jobs/packages.gitlab-ci.yml +0 -25
- data/.gitlab/ci/jobs/praefect.gitlab-ci.yml +0 -71
- data/.gitlab/ci/jobs/registry.gitlab-ci.yml +0 -41
- data/.gitlab/ci/jobs/registry_with_cdn.gitlab-ci.yml +0 -55
- data/.gitlab/ci/jobs/relative_url.gitlab-ci.yml +0 -65
- data/.gitlab/ci/jobs/repository_storage.gitlab-ci.yml +0 -41
- data/.gitlab/ci/jobs/sanity_framework.gitlab-ci.yml +0 -24
- data/.gitlab/ci/jobs/service_ping_disabled.gitlab-ci.yml +0 -19
- data/.gitlab/ci/jobs/smtp.gitlab-ci.yml +0 -19
- data/.gitlab/ci/jobs/staging.gitlab-ci.yml +0 -10
- data/.gitlab/ci/jobs/update.gitlab-ci.yml +0 -60
- data/.gitlab/ci/rules.gitlab-ci.yml +0 -183
- data/lib/gitlab/qa/scenario/test/omnibus/update.rb +0 -72
- data/scripts/generate-qa-jobs.rb +0 -99
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Gitlab
|
|
4
|
+
module QA
|
|
5
|
+
module SystemLogs
|
|
6
|
+
module LogTypes
|
|
7
|
+
module Rails
|
|
8
|
+
class ExceptionLog < Log
|
|
9
|
+
include SharedFields::Exception
|
|
10
|
+
|
|
11
|
+
def initialize(data)
|
|
12
|
+
super('Rails Exceptions', data)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def summary_fields
|
|
16
|
+
super.concat(exception_fields)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Gitlab
|
|
4
|
+
module QA
|
|
5
|
+
module SystemLogs
|
|
6
|
+
module LogTypes
|
|
7
|
+
module Rails
|
|
8
|
+
class GraphqlLog < Log
|
|
9
|
+
include SharedFields::Meta
|
|
10
|
+
|
|
11
|
+
def initialize(data)
|
|
12
|
+
super('Rails GraphQL', data)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def summary_fields
|
|
16
|
+
super.concat(
|
|
17
|
+
[
|
|
18
|
+
:operation_name,
|
|
19
|
+
:query_string,
|
|
20
|
+
:variables
|
|
21
|
+
],
|
|
22
|
+
meta_fields
|
|
23
|
+
)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Gitlab
|
|
4
|
+
module QA
|
|
5
|
+
module SystemLogs
|
|
6
|
+
module SharedFields
|
|
7
|
+
module Meta
|
|
8
|
+
def meta_fields
|
|
9
|
+
[
|
|
10
|
+
:meta_user,
|
|
11
|
+
:meta_project,
|
|
12
|
+
:meta_caller_id
|
|
13
|
+
]
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
module Exception
|
|
18
|
+
def exception_fields
|
|
19
|
+
[
|
|
20
|
+
:exception_class,
|
|
21
|
+
:exception_message,
|
|
22
|
+
:exception_backtrace
|
|
23
|
+
]
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Gitlab
|
|
4
|
+
module QA
|
|
5
|
+
module SystemLogs
|
|
6
|
+
class SystemLogsFormatter
|
|
7
|
+
NUM_OF_LOG_SECTIONS = 4
|
|
8
|
+
|
|
9
|
+
def initialize(base_paths, correlation_id)
|
|
10
|
+
@base_paths = base_paths
|
|
11
|
+
@correlation_id = correlation_id
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def system_logs_summary_markdown
|
|
15
|
+
log_sections = Array.new(NUM_OF_LOG_SECTIONS) { [] }
|
|
16
|
+
|
|
17
|
+
@base_paths.each do |base_path|
|
|
18
|
+
all_logs = [
|
|
19
|
+
Finders::Rails::ApiLogFinder.new(base_path).find(@correlation_id),
|
|
20
|
+
Finders::Rails::ExceptionLogFinder.new(base_path).find(@correlation_id),
|
|
21
|
+
Finders::Rails::ApplicationLogFinder.new(base_path).find(@correlation_id),
|
|
22
|
+
Finders::Rails::GraphqlLogFinder.new(base_path).find(@correlation_id)
|
|
23
|
+
]
|
|
24
|
+
|
|
25
|
+
create_log_summary_sections!(all_logs, log_sections)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
log_sections.prepend('### System Logs') unless log_sections.all?(&:empty?)
|
|
29
|
+
log_sections.join("\n").rstrip
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
private
|
|
33
|
+
|
|
34
|
+
def create_log_summary_sections!(all_logs, sections)
|
|
35
|
+
sections.zip(all_logs) do |section, logs|
|
|
36
|
+
unless logs.empty?
|
|
37
|
+
section_title = "\n#### #{logs.first.name}"
|
|
38
|
+
section.append(section_title) unless section.include?(section_title)
|
|
39
|
+
section.append(create_log_summaries(logs))
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def create_log_summaries(logs)
|
|
45
|
+
section = []
|
|
46
|
+
|
|
47
|
+
logs.each do |log|
|
|
48
|
+
log_summary = <<~MARKDOWN.chomp
|
|
49
|
+
<details><summary>Click to expand</summary>
|
|
50
|
+
|
|
51
|
+
```json
|
|
52
|
+
#{JSON.pretty_generate(log.summary)}
|
|
53
|
+
```
|
|
54
|
+
</details>
|
|
55
|
+
MARKDOWN
|
|
56
|
+
|
|
57
|
+
section.append(log_summary)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
section.join("\n\n")
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
data/lib/gitlab/qa/version.rb
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
# set custom qa cache key because upstream template by default installs gitlab-qa from rubygems and uses cache key
|
|
4
|
+
# based on globally defined gitlab-qa version
|
|
5
|
+
#
|
|
6
|
+
# UPDATE_QA_CACHE needs to be passed to included child pipeline because e2e specs run on separate runners which don't share
|
|
7
|
+
# same infrastructure and this variable allows to populate cache for e2e spec specific runners
|
|
8
|
+
qa_cache_key="${RUBY_VERSION}-$(md5sum Gemfile.lock | awk '{ print $1 }')"
|
|
9
|
+
|
|
10
|
+
echo "Saving environment variables for package-and-test trigger"
|
|
11
|
+
echo "GITLAB_QA_CACHE_KEY=$qa_cache_key" > $BUILD_ENV
|
|
12
|
+
echo "UPDATE_QA_CACHE=$UPDATE_QA_CACHE" >> $BUILD_ENV
|
|
13
|
+
|
|
14
|
+
echo "Created $BUILD_ENV file:"
|
|
15
|
+
cat $BUILD_ENV
|
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:
|
|
4
|
+
version: 10.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- GitLab Quality
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2023-
|
|
11
|
+
date: 2023-04-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: climate_control
|
|
@@ -108,6 +108,34 @@ dependencies:
|
|
|
108
108
|
- - "~>"
|
|
109
109
|
- !ruby/object:Gem::Version
|
|
110
110
|
version: '3.7'
|
|
111
|
+
- !ruby/object:Gem::Dependency
|
|
112
|
+
name: simplecov
|
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
|
114
|
+
requirements:
|
|
115
|
+
- - "~>"
|
|
116
|
+
- !ruby/object:Gem::Version
|
|
117
|
+
version: '0.22'
|
|
118
|
+
type: :development
|
|
119
|
+
prerelease: false
|
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
+
requirements:
|
|
122
|
+
- - "~>"
|
|
123
|
+
- !ruby/object:Gem::Version
|
|
124
|
+
version: '0.22'
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: simplecov-cobertura
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
129
|
+
- - "~>"
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: '2.1'
|
|
132
|
+
type: :development
|
|
133
|
+
prerelease: false
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - "~>"
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: '2.1'
|
|
111
139
|
- !ruby/object:Gem::Dependency
|
|
112
140
|
name: solargraph
|
|
113
141
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -122,6 +150,20 @@ dependencies:
|
|
|
122
150
|
- - "~>"
|
|
123
151
|
- !ruby/object:Gem::Version
|
|
124
152
|
version: '0.41'
|
|
153
|
+
- !ruby/object:Gem::Dependency
|
|
154
|
+
name: timecop
|
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
|
156
|
+
requirements:
|
|
157
|
+
- - "~>"
|
|
158
|
+
- !ruby/object:Gem::Version
|
|
159
|
+
version: 0.9.5
|
|
160
|
+
type: :development
|
|
161
|
+
prerelease: false
|
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
163
|
+
requirements:
|
|
164
|
+
- - "~>"
|
|
165
|
+
- !ruby/object:Gem::Version
|
|
166
|
+
version: 0.9.5
|
|
125
167
|
- !ruby/object:Gem::Dependency
|
|
126
168
|
name: webmock
|
|
127
169
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -278,55 +320,13 @@ files:
|
|
|
278
320
|
- ".dockerignore"
|
|
279
321
|
- ".gitignore"
|
|
280
322
|
- ".gitlab-ci.yml"
|
|
281
|
-
- ".gitlab/ci/jobs/airgapped.gitlab-ci.yml"
|
|
282
|
-
- ".gitlab/ci/jobs/base.gitlab-ci.yml"
|
|
283
|
-
- ".gitlab/ci/jobs/chaos.gitlab-ci.yml"
|
|
284
|
-
- ".gitlab/ci/jobs/cloud_activation.gitlab-ci.yml"
|
|
285
|
-
- ".gitlab/ci/jobs/custom_parallel.gitlab-ci.yml"
|
|
286
|
-
- ".gitlab/ci/jobs/decomposition_multiple_db.gitlab-ci.yml"
|
|
287
|
-
- ".gitlab/ci/jobs/decomposition_single_db.gitlab-ci.yml"
|
|
288
|
-
- ".gitlab/ci/jobs/ee_previous_to_ce_update.gitlab-ci.yml"
|
|
289
|
-
- ".gitlab/ci/jobs/elasticsearch.gitlab-ci.yml"
|
|
290
|
-
- ".gitlab/ci/jobs/geo.gitlab-ci.yml"
|
|
291
|
-
- ".gitlab/ci/jobs/gitaly_cluster.gitlab-ci.yml"
|
|
292
|
-
- ".gitlab/ci/jobs/gitlab_pages.gitlab-ci.yml"
|
|
293
|
-
- ".gitlab/ci/jobs/group_saml.gitlab-ci.yml"
|
|
294
|
-
- ".gitlab/ci/jobs/instance.gitlab-ci.yml"
|
|
295
|
-
- ".gitlab/ci/jobs/instance_saml.gitlab-ci.yml"
|
|
296
|
-
- ".gitlab/ci/jobs/integrations.gitlab-ci.yml"
|
|
297
|
-
- ".gitlab/ci/jobs/jira.gitlab-ci.yml"
|
|
298
|
-
- ".gitlab/ci/jobs/large_setup.gitlab-ci.yml"
|
|
299
|
-
- ".gitlab/ci/jobs/ldap_no_server.gitlab-ci.yml"
|
|
300
|
-
- ".gitlab/ci/jobs/ldap_no_tls.gitlab-ci.yml"
|
|
301
|
-
- ".gitlab/ci/jobs/ldap_tls.gitlab-ci.yml"
|
|
302
|
-
- ".gitlab/ci/jobs/mattermost.gitlab-ci.yml"
|
|
303
|
-
- ".gitlab/ci/jobs/metrics.gitlab-ci.yml"
|
|
304
|
-
- ".gitlab/ci/jobs/mtls.gitlab-ci.yml"
|
|
305
|
-
- ".gitlab/ci/jobs/object_storage.gitlab-ci.yml"
|
|
306
|
-
- ".gitlab/ci/jobs/object_storage_aws.gitlab-ci.yml"
|
|
307
|
-
- ".gitlab/ci/jobs/object_storage_gcs.gitlab-ci.yml"
|
|
308
|
-
- ".gitlab/ci/jobs/object_storage_registry_tls.gitlab-ci.yml"
|
|
309
|
-
- ".gitlab/ci/jobs/omnibus_image.gitlab-ci.yml"
|
|
310
|
-
- ".gitlab/ci/jobs/omnibus_upgrade.gitlab-ci.yml"
|
|
311
|
-
- ".gitlab/ci/jobs/opensearch.gitlab-ci.yml"
|
|
312
|
-
- ".gitlab/ci/jobs/packages.gitlab-ci.yml"
|
|
313
|
-
- ".gitlab/ci/jobs/praefect.gitlab-ci.yml"
|
|
314
|
-
- ".gitlab/ci/jobs/registry.gitlab-ci.yml"
|
|
315
|
-
- ".gitlab/ci/jobs/registry_with_cdn.gitlab-ci.yml"
|
|
316
|
-
- ".gitlab/ci/jobs/relative_url.gitlab-ci.yml"
|
|
317
|
-
- ".gitlab/ci/jobs/repository_storage.gitlab-ci.yml"
|
|
318
|
-
- ".gitlab/ci/jobs/sanity_framework.gitlab-ci.yml"
|
|
319
|
-
- ".gitlab/ci/jobs/service_ping_disabled.gitlab-ci.yml"
|
|
320
|
-
- ".gitlab/ci/jobs/smtp.gitlab-ci.yml"
|
|
321
|
-
- ".gitlab/ci/jobs/staging.gitlab-ci.yml"
|
|
322
|
-
- ".gitlab/ci/jobs/update.gitlab-ci.yml"
|
|
323
|
-
- ".gitlab/ci/rules.gitlab-ci.yml"
|
|
324
323
|
- ".gitlab/issue_templates/Default.md"
|
|
325
324
|
- ".gitlab/merge_request_templates/Default.md"
|
|
326
325
|
- ".gitlab/merge_request_templates/Release.md"
|
|
327
326
|
- ".rspec"
|
|
328
327
|
- ".rubocop.yml"
|
|
329
328
|
- ".rubocop_todo.yml"
|
|
329
|
+
- ".simplecov"
|
|
330
330
|
- CONTRIBUTING.md
|
|
331
331
|
- Dangerfile
|
|
332
332
|
- Gemfile
|
|
@@ -459,6 +459,7 @@ files:
|
|
|
459
459
|
- lib/gitlab/qa/scenario/test/integration/mattermost.rb
|
|
460
460
|
- lib/gitlab/qa/scenario/test/integration/metrics.rb
|
|
461
461
|
- lib/gitlab/qa/scenario/test/integration/mtls.rb
|
|
462
|
+
- lib/gitlab/qa/scenario/test/integration/oauth.rb
|
|
462
463
|
- lib/gitlab/qa/scenario/test/integration/opensearch.rb
|
|
463
464
|
- lib/gitlab/qa/scenario/test/integration/praefect.rb
|
|
464
465
|
- lib/gitlab/qa/scenario/test/integration/registry.rb
|
|
@@ -469,7 +470,6 @@ files:
|
|
|
469
470
|
- lib/gitlab/qa/scenario/test/integration/smtp.rb
|
|
470
471
|
- lib/gitlab/qa/scenario/test/integration/suggested_reviewer.rb
|
|
471
472
|
- lib/gitlab/qa/scenario/test/omnibus/image.rb
|
|
472
|
-
- lib/gitlab/qa/scenario/test/omnibus/update.rb
|
|
473
473
|
- lib/gitlab/qa/scenario/test/omnibus/update_from_previous.rb
|
|
474
474
|
- lib/gitlab/qa/scenario/test/omnibus/upgrade.rb
|
|
475
475
|
- lib/gitlab/qa/scenario/test/sanity/version.rb
|
|
@@ -485,9 +485,21 @@ files:
|
|
|
485
485
|
- lib/gitlab/qa/support/invalid_response_error.rb
|
|
486
486
|
- lib/gitlab/qa/support/shell_command.rb
|
|
487
487
|
- lib/gitlab/qa/support/shellout.rb
|
|
488
|
+
- lib/gitlab/qa/system_logs/finders/json_log_finder.rb
|
|
489
|
+
- lib/gitlab/qa/system_logs/finders/rails/api_log_finder.rb
|
|
490
|
+
- lib/gitlab/qa/system_logs/finders/rails/application_log_finder.rb
|
|
491
|
+
- lib/gitlab/qa/system_logs/finders/rails/exception_log_finder.rb
|
|
492
|
+
- lib/gitlab/qa/system_logs/finders/rails/graphql_log_finder.rb
|
|
493
|
+
- lib/gitlab/qa/system_logs/log_types/log.rb
|
|
494
|
+
- lib/gitlab/qa/system_logs/log_types/rails/api_log.rb
|
|
495
|
+
- lib/gitlab/qa/system_logs/log_types/rails/application_log.rb
|
|
496
|
+
- lib/gitlab/qa/system_logs/log_types/rails/exception_log.rb
|
|
497
|
+
- lib/gitlab/qa/system_logs/log_types/rails/graphql_log.rb
|
|
498
|
+
- lib/gitlab/qa/system_logs/shared_fields.rb
|
|
499
|
+
- lib/gitlab/qa/system_logs/system_logs_formatter.rb
|
|
488
500
|
- lib/gitlab/qa/test_logger.rb
|
|
489
501
|
- lib/gitlab/qa/version.rb
|
|
490
|
-
- scripts/
|
|
502
|
+
- scripts/build-package-and-test-env
|
|
491
503
|
- support/data/admin_access_token_seed.rb
|
|
492
504
|
- support/data/license_usage_seed.rb
|
|
493
505
|
- support/manifests/suggested_reviewer/authenticator.yaml
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
ce:airgapped:
|
|
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
|
-
parallel: 10
|
|
9
|
-
variables:
|
|
10
|
-
QA_SCENARIO: "Test::Instance::Airgapped"
|
|
11
|
-
QA_RSPEC_TAGS: "--tag '~github' --tag '~skip_live_env'"
|
|
12
|
-
|
|
13
|
-
ee:airgapped:
|
|
14
|
-
extends:
|
|
15
|
-
- .rules:ee-never-when-triggered-by-feature-flag-definition-change
|
|
16
|
-
- .test
|
|
17
|
-
- .high-capacity
|
|
18
|
-
- .ee-variables
|
|
19
|
-
- .rspec-report-opts
|
|
20
|
-
parallel: 10
|
|
21
|
-
variables:
|
|
22
|
-
QA_SCENARIO: "Test::Instance::Airgapped"
|
|
23
|
-
QA_RSPEC_TAGS: "--tag '~github' --tag '~skip_live_env'"
|
|
@@ -1,273 +0,0 @@
|
|
|
1
|
-
stages:
|
|
2
|
-
- test
|
|
3
|
-
- report
|
|
4
|
-
- notify
|
|
5
|
-
|
|
6
|
-
default:
|
|
7
|
-
image: registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-${RUBY_VERSION}:bundler-2.3-docker-${DOCKER_VERSION}
|
|
8
|
-
tags:
|
|
9
|
-
- gitlab-org
|
|
10
|
-
cache:
|
|
11
|
-
key:
|
|
12
|
-
files:
|
|
13
|
-
- Gemfile.lock
|
|
14
|
-
- gitlab-qa.gemspec
|
|
15
|
-
prefix: $RUBY_VERSION
|
|
16
|
-
paths:
|
|
17
|
-
- vendor/ruby
|
|
18
|
-
before_script:
|
|
19
|
-
- export QA_ARTIFACTS_DIR=$CI_PROJECT_DIR
|
|
20
|
-
- bundle version
|
|
21
|
-
- bundle config path vendor
|
|
22
|
-
- bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check
|
|
23
|
-
- export LANG=C.UTF-8
|
|
24
|
-
- echo $CI_MERGE_REQUEST_IID
|
|
25
|
-
- echo $CI_COMMIT_BRANCH
|
|
26
|
-
- echo $CI_COMMIT_TAG
|
|
27
|
-
- echo $CI_PIPELINE_SOURCE
|
|
28
|
-
- echo $CI_DEFAULT_BRANCH
|
|
29
|
-
- echo $CI_COMMIT_REF_NAME
|
|
30
|
-
- echo $CI_JOB_ID
|
|
31
|
-
- echo $CI_COMMIT_REF_PROTECTED
|
|
32
|
-
- echo $TOP_UPSTREAM_SOURCE_SHA
|
|
33
|
-
- echo $TOP_UPSTREAM_MERGE_REQUEST_IID
|
|
34
|
-
- echo $TOP_UPSTREAM_SOURCE_PROJECT
|
|
35
|
-
- echo $TOP_UPSTREAM_DEFAULT_BRANCH
|
|
36
|
-
- echo $TOP_UPSTREAM_SOURCE_REF
|
|
37
|
-
- echo $TOP_UPSTREAM_SOURCE_JOB
|
|
38
|
-
- echo $GITLAB_QA_OPTIONS
|
|
39
|
-
- echo $QA_TESTS
|
|
40
|
-
- echo $RSPEC_REPORT_OPTS
|
|
41
|
-
- echo $QA_RSPEC_TAGS
|
|
42
|
-
- echo $QA_TEST_RESULTS_ISSUES_PROJECT
|
|
43
|
-
- echo $QA_TESTCASES_REPORTING_PROJECT
|
|
44
|
-
- echo $DEFAULT_RELEASE
|
|
45
|
-
- echo $GITLAB_QA_OPTIONS_COMBINED
|
|
46
|
-
- echo $DISABLE_RELATING_FAILURE_ISSUES
|
|
47
|
-
- echo $QA_FAILURES_MAX_DIFF_RATIO
|
|
48
|
-
- echo $QA_FAILURES_REPORTER_OPTIONS
|
|
49
|
-
- echo $NOTIFY_CHANNEL
|
|
50
|
-
- echo $REPORT_ISSUE_URL
|
|
51
|
-
- echo $QA_TESTCASE_SESSIONS_PROJECT
|
|
52
|
-
- echo $QA_FAILURES_REPORTING_PROJECT
|
|
53
|
-
- echo $ALLURE_JOB_NAME
|
|
54
|
-
- echo $QA_IMAGE
|
|
55
|
-
- echo $RELEASE
|
|
56
|
-
- echo $TEST_LICENSE_MODE
|
|
57
|
-
|
|
58
|
-
workflow:
|
|
59
|
-
rules:
|
|
60
|
-
# For merge requests, create a pipeline.
|
|
61
|
-
- if: $CI_MERGE_REQUEST_IID
|
|
62
|
-
# For the default branch, create a pipeline (this includes on schedules, pushes, merges, etc.).
|
|
63
|
-
- if: $CI_COMMIT_BRANCH == "master"
|
|
64
|
-
# For tags, create a pipeline.
|
|
65
|
-
- if: $CI_COMMIT_TAG
|
|
66
|
-
# For triggers from GitLab MR pipelines (and pipelines from other projects or parent pipeline), create a pipeline
|
|
67
|
-
- if: $CI_PIPELINE_SOURCE == "pipeline" || $CI_PIPELINE_SOURCE == "parent_pipeline"
|
|
68
|
-
# When using Run pipeline button in the GitLab UI, from the project’s CI/CD > Pipelines section, create a pipeline.
|
|
69
|
-
- if: $CI_PIPELINE_SOURCE == "web"
|
|
70
|
-
|
|
71
|
-
variables:
|
|
72
|
-
DOCKER_DRIVER: overlay2
|
|
73
|
-
DOCKER_HOST: tcp://docker:2375
|
|
74
|
-
COLORIZED_LOGS: "true"
|
|
75
|
-
QA_CAN_TEST_GIT_PROTOCOL_V2: "true"
|
|
76
|
-
QA_CAN_TEST_PRAEFECT: "false"
|
|
77
|
-
QA_GENERATE_ALLURE_REPORT: "true"
|
|
78
|
-
QA_TESTCASES_REPORTING_PROJECT: "gitlab-org/gitlab"
|
|
79
|
-
QA_TEST_RESULTS_ISSUES_PROJECT: "gitlab-org/quality/testcases"
|
|
80
|
-
QA_TESTCASE_SESSIONS_PROJECT: "gitlab-org/quality/testcase-sessions"
|
|
81
|
-
# QA_DEFAULT_BRANCH is the default branch name of the instance under test.
|
|
82
|
-
QA_DEFAULT_BRANCH: "master"
|
|
83
|
-
RUBY_VERSION: "2.7"
|
|
84
|
-
DOCKER_VERSION: "20.10.14"
|
|
85
|
-
|
|
86
|
-
.ce-variables:
|
|
87
|
-
variables:
|
|
88
|
-
DEFAULT_RELEASE: "CE"
|
|
89
|
-
|
|
90
|
-
.ee-variables:
|
|
91
|
-
variables:
|
|
92
|
-
DEFAULT_RELEASE: "EE"
|
|
93
|
-
|
|
94
|
-
.test:
|
|
95
|
-
stage: test
|
|
96
|
-
timeout: 1 hour 30 minutes
|
|
97
|
-
services:
|
|
98
|
-
- docker:20.10.5-dind
|
|
99
|
-
tags:
|
|
100
|
-
- gitlab-org
|
|
101
|
-
- docker
|
|
102
|
-
artifacts:
|
|
103
|
-
when: always
|
|
104
|
-
expire_in: 10d
|
|
105
|
-
paths:
|
|
106
|
-
- gitlab-qa-run-*
|
|
107
|
-
reports:
|
|
108
|
-
junit: gitlab-qa-run-*/**/rspec-*.xml
|
|
109
|
-
script:
|
|
110
|
-
- 'echo "QA_ARTIFACTS_DIR: $QA_ARTIFACTS_DIR"'
|
|
111
|
-
- 'echo "CI_PROJECT_DIR: $CI_PROJECT_DIR"'
|
|
112
|
-
- 'echo "Running: bundle exec exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTIONS -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS"'
|
|
113
|
-
- bundle exec exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTIONS -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS || test_run_exit_code=$?
|
|
114
|
-
- bundle exec exe/gitlab-qa-report --update-screenshot-path "gitlab-qa-run-*/**/rspec-*.xml"
|
|
115
|
-
# Back-compatibility until we migrate all GITLAB_QA_PRODUCTION_ACCESS_TOKEN to QA_REPORT_RESULT_TOKEN.
|
|
116
|
-
# See https://gitlab.com/gitlab-org/quality/engineering-productivity/team/-/issues/175#note_1281196581 for context.
|
|
117
|
-
- export GITLAB_QA_ACCESS_TOKEN="${QA_REPORT_RESULT_TOKEN:-$GITLAB_QA_PRODUCTION_ACCESS_TOKEN}"
|
|
118
|
-
- |
|
|
119
|
-
if [ "$TOP_UPSTREAM_SOURCE_REF" == $TOP_UPSTREAM_DEFAULT_BRANCH ] || [[ "$TOP_UPSTREAM_SOURCE_JOB" == https://ops.gitlab.net* ]]; then
|
|
120
|
-
exe/gitlab-qa-report --report-results "gitlab-qa-run-*/**/rspec-*.json" --test-case-project "$QA_TESTCASES_REPORTING_PROJECT" --results-issue-project "$QA_TEST_RESULTS_ISSUES_PROJECT" || true;
|
|
121
|
-
fi
|
|
122
|
-
- exit $test_run_exit_code
|
|
123
|
-
|
|
124
|
-
# For jobs that shouldn't report results in issues, e.g., manually run custom jobs
|
|
125
|
-
.no-issue-report-script:
|
|
126
|
-
script:
|
|
127
|
-
- 'echo "Running: bundle exec exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTIONS -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS"'
|
|
128
|
-
- bundle exec exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTIONS -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS
|
|
129
|
-
|
|
130
|
-
# For jobs that provide additional GITLAB_QA_OPTIONS, e.g., jobs that include --omnibus-config
|
|
131
|
-
.combined-gitlab-qa-options-script:
|
|
132
|
-
script:
|
|
133
|
-
- 'echo "Running: bundle exec exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTIONS_COMBINED -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS"'
|
|
134
|
-
|
|
135
|
-
- bundle exec exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTIONS_COMBINED -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS || test_run_exit_code=$?
|
|
136
|
-
- bundle exec exe/gitlab-qa-report --update-screenshot-path "gitlab-qa-run-*/**/rspec-*.xml"
|
|
137
|
-
# Back-compatibility until we migrate all GITLAB_QA_PRODUCTION_ACCESS_TOKEN to QA_REPORT_RESULT_TOKEN.
|
|
138
|
-
# See https://gitlab.com/gitlab-org/quality/engineering-productivity/team/-/issues/175#note_1281196581 for context.
|
|
139
|
-
- export GITLAB_QA_ACCESS_TOKEN="${QA_REPORT_RESULT_TOKEN:-$GITLAB_QA_PRODUCTION_ACCESS_TOKEN}"
|
|
140
|
-
- |
|
|
141
|
-
if [ "$TOP_UPSTREAM_SOURCE_REF" == $TOP_UPSTREAM_DEFAULT_BRANCH ] || [[ "$TOP_UPSTREAM_SOURCE_JOB" == https://ops.gitlab.net* ]]; then
|
|
142
|
-
exe/gitlab-qa-report --report-results "gitlab-qa-run-*/**/rspec-*.json" --test-case-project "$QA_TESTCASES_REPORTING_PROJECT" --results-issue-project "$QA_TEST_RESULTS_ISSUES_PROJECT" || true;
|
|
143
|
-
fi
|
|
144
|
-
- exit $test_run_exit_code
|
|
145
|
-
|
|
146
|
-
# The Test::Omnibus::Update scenarios require the release to be specified twice, which can't be done dynamically using the `variables` parameter
|
|
147
|
-
# So instead we can use this script with two release variables
|
|
148
|
-
.update-scenario-script:
|
|
149
|
-
script:
|
|
150
|
-
- 'echo "Running: bundle exec exe/gitlab-qa Test::Omnibus::Update ${RELEASE:=$DEFAULT_RELEASE} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTIONS -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS"'
|
|
151
|
-
- bundle exec exe/gitlab-qa Test::Omnibus::Update ${RELEASE:=$DEFAULT_RELEASE} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTIONS -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS || test_run_exit_code=$?
|
|
152
|
-
- bundle exec exe/gitlab-qa-report --update-screenshot-path "gitlab-qa-run-*/**/rspec-*.xml"
|
|
153
|
-
# Back-compatibility until we migrate all GITLAB_QA_PRODUCTION_ACCESS_TOKEN to QA_REPORT_RESULT_TOKEN.
|
|
154
|
-
# See https://gitlab.com/gitlab-org/quality/engineering-productivity/team/-/issues/175#note_1281196581 for context.
|
|
155
|
-
- export GITLAB_QA_ACCESS_TOKEN="${QA_REPORT_RESULT_TOKEN:-$GITLAB_QA_PRODUCTION_ACCESS_TOKEN}"
|
|
156
|
-
- |
|
|
157
|
-
if [ "$TOP_UPSTREAM_SOURCE_REF" == $TOP_UPSTREAM_DEFAULT_BRANCH ] || [[ "$TOP_UPSTREAM_SOURCE_JOB" == https://ops.gitlab.net* ]]; then
|
|
158
|
-
exe/gitlab-qa-report --report-results "gitlab-qa-run-*/**/rspec-*.json" --test-case-project "$QA_TESTCASES_REPORTING_PROJECT" --results-issue-project "$QA_TEST_RESULTS_ISSUES_PROJECT" || true;
|
|
159
|
-
fi
|
|
160
|
-
- exit $test_run_exit_code
|
|
161
|
-
|
|
162
|
-
.high-capacity:
|
|
163
|
-
tags:
|
|
164
|
-
- e2e
|
|
165
|
-
|
|
166
|
-
.rspec-report-opts:
|
|
167
|
-
variables:
|
|
168
|
-
FILE_SAFE_JOB_NAME: $(echo $CI_JOB_NAME | sed 's/[ /]/_/g')
|
|
169
|
-
RSPEC_REPORT_OPTS: '--format QA::Support::JsonFormatter --out "tmp/rspec-${CI_JOB_ID}.json" --format RspecJunitFormatter --out "tmp/rspec-${CI_JOB_ID}.xml" --format html --out "tmp/rspec-${FILE_SAFE_JOB_NAME}.htm" --color --format documentation'
|
|
170
|
-
|
|
171
|
-
.quarantine:
|
|
172
|
-
allow_failure: true
|
|
173
|
-
variables:
|
|
174
|
-
QA_RSPEC_TAGS: "--tag quarantine"
|
|
175
|
-
|
|
176
|
-
generate_test_session:
|
|
177
|
-
stage: report
|
|
178
|
-
rules:
|
|
179
|
-
- if: '$TOP_UPSTREAM_SOURCE_JOB !=null && $TOP_UPSTREAM_SOURCE_JOB !="" && $TOP_UPSTREAM_SOURCE_REF == $TOP_UPSTREAM_DEFAULT_BRANCH'
|
|
180
|
-
when: always
|
|
181
|
-
- if: '$TOP_UPSTREAM_SOURCE_JOB =~ /\Ahttps:\/\/ops.gitlab.net\//'
|
|
182
|
-
when: always
|
|
183
|
-
artifacts:
|
|
184
|
-
when: always
|
|
185
|
-
expire_in: 10d
|
|
186
|
-
paths:
|
|
187
|
-
- REPORT_ISSUE_URL
|
|
188
|
-
script:
|
|
189
|
-
# Back-compatibility until we migrate all GITLAB_QA_PRODUCTION_ACCESS_TOKEN to QA_TEST_SESSION_TOKEN.
|
|
190
|
-
# See https://gitlab.com/gitlab-org/quality/engineering-productivity/team/-/issues/175#note_1281240424 for context.
|
|
191
|
-
- export GITLAB_QA_ACCESS_TOKEN="${QA_TEST_SESSION_TOKEN:-$GITLAB_QA_PRODUCTION_ACCESS_TOKEN}"
|
|
192
|
-
- bundle exec exe/gitlab-qa-report --generate-test-session "gitlab-qa-run-*/**/rspec-*.json" --project "$QA_TESTCASE_SESSIONS_PROJECT"
|
|
193
|
-
|
|
194
|
-
relate_test_failures:
|
|
195
|
-
stage: report
|
|
196
|
-
rules:
|
|
197
|
-
- if: '$DISABLE_RELATING_FAILURE_ISSUES != null && $DISABLE_RELATING_FAILURE_ISSUES != ""'
|
|
198
|
-
when: never
|
|
199
|
-
- if: '$TOP_UPSTREAM_SOURCE_JOB !=null && $TOP_UPSTREAM_SOURCE_JOB !="" && $TOP_UPSTREAM_SOURCE_REF == $TOP_UPSTREAM_DEFAULT_BRANCH'
|
|
200
|
-
when: always
|
|
201
|
-
- if: '$TOP_UPSTREAM_SOURCE_JOB =~ /\Ahttps:\/\/ops.gitlab.net\//'
|
|
202
|
-
when: always
|
|
203
|
-
variables:
|
|
204
|
-
QA_FAILURES_REPORTING_PROJECT: "gitlab-org/gitlab"
|
|
205
|
-
QA_FAILURES_MAX_DIFF_RATIO: "0.15"
|
|
206
|
-
# The --dry-run can be set to modify the behavior of `exe/gitlab-qa-report --relate-failure-issue` without releasing a new gem version.
|
|
207
|
-
QA_FAILURES_REPORTER_OPTIONS: ""
|
|
208
|
-
script:
|
|
209
|
-
# Back-compatibility until we migrate all GITLAB_QA_PRODUCTION_ACCESS_TOKEN to QA_REPORT_RESULT_TOKEN.
|
|
210
|
-
# See https://gitlab.com/gitlab-org/quality/engineering-productivity/team/-/issues/175#note_1281196581 for context.
|
|
211
|
-
- export GITLAB_QA_ACCESS_TOKEN="${QA_REPORT_RESULT_TOKEN:-$GITLAB_QA_PRODUCTION_ACCESS_TOKEN}"
|
|
212
|
-
- 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
|
|
213
|
-
|
|
214
|
-
.notify_slack:
|
|
215
|
-
image: alpine
|
|
216
|
-
stage: notify
|
|
217
|
-
dependencies: ['generate_test_session']
|
|
218
|
-
cache: {}
|
|
219
|
-
before_script:
|
|
220
|
-
- apk update && apk add git curl bash
|
|
221
|
-
|
|
222
|
-
notify_slack:
|
|
223
|
-
extends:
|
|
224
|
-
- .notify_slack
|
|
225
|
-
rules:
|
|
226
|
-
- if: '$TOP_UPSTREAM_SOURCE_JOB !=null && $TOP_UPSTREAM_SOURCE_JOB !="" && $NOTIFY_CHANNEL !=null && $NOTIFY_CHANNEL !=""'
|
|
227
|
-
when: on_failure
|
|
228
|
-
- if: '$TOP_UPSTREAM_SOURCE_JOB !=null && $TOP_UPSTREAM_SOURCE_JOB !="" && $TOP_UPSTREAM_SOURCE_REF == $TOP_UPSTREAM_DEFAULT_BRANCH'
|
|
229
|
-
when: on_failure
|
|
230
|
-
script:
|
|
231
|
-
- export RELEASE=${TOP_UPSTREAM_SOURCE_REF:-$RELEASE}
|
|
232
|
-
- echo "NOTIFY_CHANNEL is ${NOTIFY_CHANNEL:=qa-$TOP_UPSTREAM_SOURCE_REF}"
|
|
233
|
-
- echo "RELEASE is ${RELEASE}"
|
|
234
|
-
- echo "CI_PIPELINE_URL is $CI_PIPELINE_URL"
|
|
235
|
-
- echo "TOP_UPSTREAM_SOURCE_JOB is $TOP_UPSTREAM_SOURCE_JOB"
|
|
236
|
-
- 'bin/slack $NOTIFY_CHANNEL "☠️ QA against $RELEASE failed! ☠️ See the test session report: $(cat REPORT_ISSUE_URL), and pipeline: $CI_PIPELINE_URL (triggered from $TOP_UPSTREAM_SOURCE_JOB)" ci_failing'
|
|
237
|
-
|
|
238
|
-
generate-allure-report:
|
|
239
|
-
extends: .generate-allure-report-base
|
|
240
|
-
stage: report
|
|
241
|
-
variables:
|
|
242
|
-
ALLURE_RESULTS_GLOB: gitlab-qa-run-*/**/allure-results/*
|
|
243
|
-
cache:
|
|
244
|
-
policy: pull
|
|
245
|
-
before_script:
|
|
246
|
-
- export STORAGE_CREDENTIALS=$QA_ALLURE_REPORT_GCS_CREDENTIALS
|
|
247
|
-
- export GITLAB_AUTH_TOKEN=$GITLAB_QA_MR_ALLURE_REPORT_TOKEN
|
|
248
|
-
# Set allure variables for merge request comment based on pipeline source
|
|
249
|
-
- export ALLURE_MERGE_REQUEST_IID=${TOP_UPSTREAM_MERGE_REQUEST_IID:-$CI_MERGE_REQUEST_IID}
|
|
250
|
-
- export ALLURE_PROJECT_PATH=${TOP_UPSTREAM_SOURCE_PROJECT:-$CI_MERGE_REQUEST_PROJECT_PATH}
|
|
251
|
-
- export ALLURE_COMMIT_SHA=${TOP_UPSTREAM_SOURCE_SHA:-$CI_MERGE_REQUEST_SOURCE_BRANCH_SHA}
|
|
252
|
-
rules:
|
|
253
|
-
# Don't run report generation on release pipelines
|
|
254
|
-
- if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_PATH == "gitlab-org/gitlab-qa" && $RELEASE == null'
|
|
255
|
-
changes: ["lib/**/version.rb"]
|
|
256
|
-
when: never
|
|
257
|
-
- if: '$CI_COMMIT_TAG'
|
|
258
|
-
when: never
|
|
259
|
-
- if: '$ALLURE_JOB_NAME'
|
|
260
|
-
when: always
|
|
261
|
-
|
|
262
|
-
generate-knapsack-report:
|
|
263
|
-
extends: .generate-knapsack-report-base
|
|
264
|
-
image:
|
|
265
|
-
name: ${QA_IMAGE}
|
|
266
|
-
stage: report
|
|
267
|
-
|
|
268
|
-
include:
|
|
269
|
-
- local: .gitlab/ci/rules.gitlab-ci.yml
|
|
270
|
-
- project: 'gitlab-org/quality/pipeline-common'
|
|
271
|
-
file:
|
|
272
|
-
- '/ci/allure-report.yml'
|
|
273
|
-
- '/ci/knapsack-report.yml'
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
ee:chaos:
|
|
2
|
-
extends:
|
|
3
|
-
- .rules:ee-never-when-triggered-by-feature-flag-definition-change
|
|
4
|
-
- .test
|
|
5
|
-
- .high-capacity
|
|
6
|
-
- .ee-variables
|
|
7
|
-
- .rspec-report-opts
|
|
8
|
-
variables:
|
|
9
|
-
QA_SCENARIO: "Test::Integration::Chaos"
|
|
10
|
-
QA_RSPEC_TAGS: "--tag chaos"
|
|
11
|
-
|
|
12
|
-
ee:chaos-quarantine:
|
|
13
|
-
extends:
|
|
14
|
-
- .rules:ee-never-when-triggered-by-feature-flag-definition-change
|
|
15
|
-
- .test
|
|
16
|
-
- .high-capacity
|
|
17
|
-
- .ee-variables
|
|
18
|
-
- .quarantine
|
|
19
|
-
- .rspec-report-opts
|
|
20
|
-
variables:
|
|
21
|
-
QA_SCENARIO: "Test::Integration::Chaos"
|
|
22
|
-
QA_RSPEC_TAGS: "--tag quarantine --tag chaos"
|