gitlab-qa 4.3.3 → 4.4.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 +434 -284
- data/.rubocop.yml +0 -3
- data/bin/merge_html_reports +86 -0
- data/bin/notify_upstream_commit +16 -8
- data/docs/run_qa_against_gdk.md +10 -8
- data/docs/what_tests_can_be_run.md +8 -0
- data/gitlab-qa.gemspec +3 -3
- data/lib/gitlab/qa.rb +6 -0
- data/lib/gitlab/qa/component/gitlab.rb +11 -0
- data/lib/gitlab/qa/component/specs.rb +11 -0
- data/lib/gitlab/qa/component/staging.rb +4 -89
- data/lib/gitlab/qa/release.rb +20 -1
- data/lib/gitlab/qa/scenario/test/instance/deployment_base.rb +0 -11
- data/lib/gitlab/qa/scenario/test/integration/geo.rb +0 -1
- data/lib/gitlab/qa/scenario/test/integration/object_storage.rb +0 -2
- data/lib/gitlab/qa/support/dev_ee_qa_image.rb +52 -0
- data/lib/gitlab/qa/support/get_request.rb +39 -0
- data/lib/gitlab/qa/support/invalid_response_error.rb +9 -0
- data/lib/gitlab/qa/version.rb +1 -1
- metadata +12 -8
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'uri'
|
3
|
+
|
4
|
+
module Gitlab
|
5
|
+
module QA
|
6
|
+
module Support
|
7
|
+
class DevEEQAImage
|
8
|
+
attr_reader :base_url
|
9
|
+
|
10
|
+
DEV_ADDRESS = 'https://dev.gitlab.org'.freeze
|
11
|
+
GITLAB_EE_QA_REPOSITORY_ID = 55
|
12
|
+
QAImageNotFoundError = Class.new(StandardError)
|
13
|
+
|
14
|
+
def initialize
|
15
|
+
@base_url = "#{DEV_ADDRESS}/api/v4/projects/gitlab%2Fomnibus-gitlab/registry/repositories/#{GITLAB_EE_QA_REPOSITORY_ID}/tags?per_page=100"
|
16
|
+
|
17
|
+
Runtime::Env.require_qa_dev_access_token!
|
18
|
+
end
|
19
|
+
|
20
|
+
def retrieve_image_from_container_registry!(revision)
|
21
|
+
request_url = base_url
|
22
|
+
|
23
|
+
begin
|
24
|
+
response = api_get!(URI.parse(request_url))
|
25
|
+
tags = JSON.parse(response.body)
|
26
|
+
|
27
|
+
matching_qa_image_tag = find_matching_qa_image_tag(tags, revision)
|
28
|
+
return matching_qa_image_tag['location'] if matching_qa_image_tag
|
29
|
+
|
30
|
+
request_url = next_page_url_from_response(response)
|
31
|
+
end while request_url
|
32
|
+
|
33
|
+
raise QAImageNotFoundError, "No `gitlab-ee-qa` image could be found for the revision `#{revision}`."
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def api_get!(uri)
|
39
|
+
Support::GetRequest.new(uri, Runtime::Env.qa_dev_access_token).execute!
|
40
|
+
end
|
41
|
+
|
42
|
+
def next_page_url_from_response(response)
|
43
|
+
response['x-next-page'].to_s != '' ? "#{base_url}&page=#{response['x-next-page']}" : nil
|
44
|
+
end
|
45
|
+
|
46
|
+
def find_matching_qa_image_tag(tags, revision)
|
47
|
+
tags.find { |tag| tag['name'].end_with?(revision) }
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require 'uri'
|
3
|
+
|
4
|
+
module Gitlab
|
5
|
+
module QA
|
6
|
+
module Support
|
7
|
+
class GetRequest
|
8
|
+
attr_reader :uri, :token
|
9
|
+
|
10
|
+
def initialize(uri, token)
|
11
|
+
@uri = uri
|
12
|
+
@token = token
|
13
|
+
end
|
14
|
+
|
15
|
+
def execute!
|
16
|
+
response =
|
17
|
+
Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
|
18
|
+
http.request(build_request)
|
19
|
+
end
|
20
|
+
|
21
|
+
case response
|
22
|
+
when Net::HTTPSuccess
|
23
|
+
response
|
24
|
+
else
|
25
|
+
raise InvalidResponseError.new(uri.to_s, response)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def build_request
|
32
|
+
Net::HTTP::Get.new(uri).tap do |req|
|
33
|
+
req['PRIVATE-TOKEN'] = token
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
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: 4.
|
4
|
+
version: 4.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Grzegorz Bizon
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-10-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: climate_control
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 2.
|
33
|
+
version: 2.4.0
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 2.
|
40
|
+
version: 2.4.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: pry
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -84,16 +84,16 @@ dependencies:
|
|
84
84
|
name: rubocop
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.
|
89
|
+
version: 0.54.0
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: 0.
|
96
|
+
version: 0.54.0
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rubocop-rspec
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -144,6 +144,7 @@ files:
|
|
144
144
|
- Rakefile
|
145
145
|
- bin/console
|
146
146
|
- bin/expect_exit_code_and_text
|
147
|
+
- bin/merge_html_reports
|
147
148
|
- bin/notify_upstream_commit
|
148
149
|
- bin/setup
|
149
150
|
- bin/slack
|
@@ -206,6 +207,9 @@ files:
|
|
206
207
|
- lib/gitlab/qa/scenario/test/omnibus/update.rb
|
207
208
|
- lib/gitlab/qa/scenario/test/omnibus/upgrade.rb
|
208
209
|
- lib/gitlab/qa/scenario/test/sanity/version.rb
|
210
|
+
- lib/gitlab/qa/support/dev_ee_qa_image.rb
|
211
|
+
- lib/gitlab/qa/support/get_request.rb
|
212
|
+
- lib/gitlab/qa/support/invalid_response_error.rb
|
209
213
|
- lib/gitlab/qa/version.rb
|
210
214
|
- tls_certificates/gitlab/gitlab.test.crt
|
211
215
|
- tls_certificates/gitlab/gitlab.test.key
|