gitlab-qa 6.20.1 → 6.21.4
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/docs/what_tests_can_be_run.md +15 -0
- data/lib/gitlab/qa/component/gitlab.rb +7 -2
- data/lib/gitlab/qa/report/generate_test_session.rb +5 -5
- data/lib/gitlab/qa/runtime/env.rb +4 -0
- data/lib/gitlab/qa/scenario/test/integration/ssh_tunnel.rb +1 -2
- data/lib/gitlab/qa/scenario/test/sanity/version.rb +26 -15
- data/lib/gitlab/qa/version.rb +1 -1
- metadata +2 -3
- data/.travis.yml +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b9760fa09e36771aae86f79908388d235ce9ec597e551d7458f8f2f9840f2456
|
4
|
+
data.tar.gz: e1c8574a9f3471e21017d32e9d92a0ff79ff057c71d0c9878fe04000ef5c781a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 361ad4bf805c10df590d8b7fb2bfce2a3d0af472c9d3dc92b648f44d44e779558171df44101ec952e6127848aa566f1d6ef4f50ce56e77a6d6cfdd0795f97313
|
7
|
+
data.tar.gz: b5ddd7de265e676f4078a10978d8931fb555a45fe9c559af9926debf620a9848ac6f503ee54689c7df04b4fa6d499765359a05c1909ef66445fe8794f39d3d66
|
@@ -167,6 +167,21 @@ And the following would run all Create API tests as well as UI tests:
|
|
167
167
|
$ gitlab-qa Test::Instance::Image EE -- qa/specs/features/browser_ui/3_create qa/specs/features/api/3_create
|
168
168
|
```
|
169
169
|
|
170
|
+
### Running tests for transient bugs
|
171
|
+
|
172
|
+
A suite of tests have been written to test for [transient bugs](https://about.gitlab.com/handbook/engineering/quality/issue-triage/#transient-bugs).
|
173
|
+
Those tests are tagged `:transient` and therefore can be run via:
|
174
|
+
|
175
|
+
```shell
|
176
|
+
$ gitlab-qa Test::Instance::Image EE -- --tag transient
|
177
|
+
```
|
178
|
+
|
179
|
+
If you would like to run the transient bug tests against a specific GitLab instance such as your GDK, you can use the following command:
|
180
|
+
|
181
|
+
```shell
|
182
|
+
$ gitlab-qa Test::Instance::Any EE https://your.instance.gitlab -- --tag transient
|
183
|
+
```
|
184
|
+
|
170
185
|
## Examples
|
171
186
|
|
172
187
|
### `Test::Instance::Image CE|EE|<full image address>`
|
@@ -101,12 +101,17 @@ module Gitlab
|
|
101
101
|
def prepare_gitlab_omnibus_config
|
102
102
|
setup_disable_animations if disable_animations
|
103
103
|
set_formless_login_token
|
104
|
+
setup_application_settings_cache_expiry
|
104
105
|
end
|
105
106
|
|
106
107
|
def setup_disable_animations
|
107
108
|
@environment['GITLAB_OMNIBUS_CONFIG'] = "gitlab_rails['gitlab_disable_animations'] = true; #{@environment['GITLAB_OMNIBUS_CONFIG'] || ''}"
|
108
109
|
end
|
109
110
|
|
111
|
+
def setup_application_settings_cache_expiry
|
112
|
+
@environment['GITLAB_OMNIBUS_CONFIG'] = "gitlab_rails['application_settings_cache_seconds'] = 0; #{@environment['GITLAB_OMNIBUS_CONFIG'] || ''}"
|
113
|
+
end
|
114
|
+
|
110
115
|
def start # rubocop:disable Metrics/AbcSize
|
111
116
|
ensure_configured!
|
112
117
|
|
@@ -138,14 +143,14 @@ module Gitlab
|
|
138
143
|
puts line
|
139
144
|
# TODO, workaround which allows to detach from the container
|
140
145
|
#
|
141
|
-
|
146
|
+
break if line =~ /gitlab Reconfigured!/
|
142
147
|
end
|
143
148
|
end
|
144
149
|
|
145
150
|
def wait_until_ready
|
146
151
|
return if skip_availability_check
|
147
152
|
|
148
|
-
if Availability.new(name, relative_path: relative_path, scheme: scheme, protocol_port: port.to_i).check(
|
153
|
+
if Availability.new(name, relative_path: relative_path, scheme: scheme, protocol_port: port.to_i).check(Runtime::Env.gitlab_availability_timeout)
|
149
154
|
sleep 12 # TODO, handle that better
|
150
155
|
puts ' -> GitLab is available.'
|
151
156
|
else
|
@@ -153,7 +153,7 @@ module Gitlab
|
|
153
153
|
<<~MARKDOWN.chomp
|
154
154
|
<details><summary>Passed tests:</summary>
|
155
155
|
|
156
|
-
#{generate_testcase_listing(passed_tests)}
|
156
|
+
#{generate_testcase_listing(passed_tests, passed: true)}
|
157
157
|
|
158
158
|
</details>
|
159
159
|
MARKDOWN
|
@@ -169,11 +169,11 @@ module Gitlab
|
|
169
169
|
MARKDOWN
|
170
170
|
end
|
171
171
|
|
172
|
-
def generate_testcase_listing(tests)
|
172
|
+
def generate_testcase_listing(tests, passed: false)
|
173
173
|
body = tests.group_by(&:testcase).map do |testcase, tests_with_same_testcase|
|
174
174
|
tests_with_same_testcase.sort_by!(&:name)
|
175
175
|
[
|
176
|
-
generate_test_text(testcase, tests_with_same_testcase),
|
176
|
+
generate_test_text(testcase, tests_with_same_testcase, passed),
|
177
177
|
generate_test_job(tests_with_same_testcase),
|
178
178
|
generate_test_status(tests_with_same_testcase),
|
179
179
|
generate_test_actions(tests_with_same_testcase)
|
@@ -187,10 +187,10 @@ module Gitlab
|
|
187
187
|
MARKDOWN
|
188
188
|
end
|
189
189
|
|
190
|
-
def generate_test_text(testcase, tests_with_same_testcase)
|
190
|
+
def generate_test_text(testcase, tests_with_same_testcase, passed)
|
191
191
|
text = tests_with_same_testcase.map(&:name).uniq.join(', ')
|
192
192
|
|
193
|
-
if testcase
|
193
|
+
if testcase && !passed
|
194
194
|
"[#{text}](#{testcase})"
|
195
195
|
else
|
196
196
|
text
|
@@ -26,8 +26,7 @@ module Gitlab
|
|
26
26
|
external_url '#{tunnel_gitlab.url}';
|
27
27
|
nginx['listen_port'] = 80;
|
28
28
|
nginx['listen_https'] = false;
|
29
|
-
|
30
|
-
gitlab_rails['initial_root_password'] = '#{Runtime::Env.require_initial_password!}'
|
29
|
+
gitlab_rails['initial_root_password'] = '#{Runtime::Env.require_initial_password!}';
|
31
30
|
|
32
31
|
registry_external_url '#{tunnel_registry.url}';
|
33
32
|
registry_nginx['listen_port'] = 80;
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'json'
|
2
2
|
require 'net/http'
|
3
3
|
require 'cgi'
|
4
|
+
require 'time'
|
4
5
|
|
5
6
|
module Gitlab
|
6
7
|
module QA
|
@@ -8,14 +9,10 @@ module Gitlab
|
|
8
9
|
module Test
|
9
10
|
module Sanity
|
10
11
|
# This test checks that the sha_version of a GitLab was authored in
|
11
|
-
# the window defined by `
|
12
|
-
#
|
13
|
-
# the commits in the time window will fit.
|
12
|
+
# the window defined by the `weekday_hours` method.
|
13
|
+
# We perform a single API call to get the commit
|
14
14
|
class Version < Scenario::Template
|
15
|
-
|
16
|
-
COMMITS = 10_000
|
17
|
-
|
18
|
-
def perform(release)
|
15
|
+
def perform(release = 'ce')
|
19
16
|
version = Component::Gitlab.perform do |gitlab|
|
20
17
|
gitlab.release = release
|
21
18
|
gitlab.act do
|
@@ -25,9 +22,9 @@ module Gitlab
|
|
25
22
|
end
|
26
23
|
|
27
24
|
project = "gitlab-org/#{QA::Release.new(release).api_project_name}"
|
28
|
-
commit =
|
25
|
+
commit = api_commit_detail(project, version)
|
29
26
|
|
30
|
-
if commit
|
27
|
+
if commit_within_hours?(commit['created_at'], weekday_hours(commit['created_at']))
|
31
28
|
puts "Found commit #{version} in recent history of #{project}"
|
32
29
|
else
|
33
30
|
puts "Did not find #{version} in recent history of #{project}"
|
@@ -37,14 +34,28 @@ module Gitlab
|
|
37
34
|
|
38
35
|
private
|
39
36
|
|
40
|
-
def
|
37
|
+
def weekday_hours(date_string)
|
38
|
+
case Date.parse(date_string).wday
|
39
|
+
# Sunday
|
40
|
+
when 0
|
41
|
+
48
|
42
|
+
# Monday
|
43
|
+
when 1
|
44
|
+
72
|
45
|
+
else
|
46
|
+
24
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def commit_within_hours?(commit_time_string, hours)
|
51
|
+
Time.at(Time.parse(commit_time_string).utc).to_datetime > Time.at((Time.now - hours * 60 * 60).utc).to_datetime
|
52
|
+
end
|
53
|
+
|
54
|
+
def api_commit_detail(project, commit_id)
|
41
55
|
api = 'https://gitlab.com/api/v4'
|
42
|
-
url = "#{api}/projects/#{CGI.escape(project)}/repository/commits"
|
43
|
-
since = (Time.now - HOURS_AGO * 60 * 60).strftime('%FT%T')
|
56
|
+
url = "#{api}/projects/#{CGI.escape(project)}/repository/commits/#{commit_id}"
|
44
57
|
|
45
|
-
|
46
|
-
uri.query = URI.encode_www_form(since: since, per_page: COMMITS)
|
47
|
-
JSON.parse(Net::HTTP.get(uri))
|
58
|
+
JSON.parse(Net::HTTP.get(URI(url)))
|
48
59
|
end
|
49
60
|
end
|
50
61
|
end
|
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: 6.
|
4
|
+
version: 6.21.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Grzegorz Bizon
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-02-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: climate_control
|
@@ -208,7 +208,6 @@ files:
|
|
208
208
|
- ".rspec"
|
209
209
|
- ".rubocop.yml"
|
210
210
|
- ".rubocop_todo.yml"
|
211
|
-
- ".travis.yml"
|
212
211
|
- CONTRIBUTING.md
|
213
212
|
- Gemfile
|
214
213
|
- LICENSE
|