gitlab-qa 8.3.0 → 8.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f11ebd2677dc7ba62bd4b55efc03ad8d9560c38a3e601897a9a201d3c09c8eae
4
- data.tar.gz: f8db94175a79e62ae625e8b975fc49b03c4077ff608f40a85fa7ea7a5b3f859d
3
+ metadata.gz: 0e196fadefd8ed7eb786eccf7b619ce3173077a85a42039c0e93174c3d468a4e
4
+ data.tar.gz: 99c644f122bf4c4db3b95032c39d572946597c983d00f6b4bb2949034df39055
5
5
  SHA512:
6
- metadata.gz: 21199373f3dff6e7e9204062fec4e204309e33d3bd50994285691aa8b833e926262ac9359810ba5f0cc1a624168693a7e4f195e3abc819088b5bc2f6736f4d07
7
- data.tar.gz: a7dc574dceebed5e61b2383030cd114df7cabd00c974d5e548bed6364a031d6617f8495716fc8b7eb6043b6ad33eb8db33adc0f7cc7b0125871dca8a704c6f26
6
+ metadata.gz: e9e458196a7efd87fe5b432ee30bc8bc29bc88d18b3037e0be9ad1fb7beaf14537603ae14d2d6482a6154c990687b71ff25043877c410af55a67e61325c5eef4
7
+ data.tar.gz: 46803ea55f474a5a2b2b4f145200497f3d7646a11574cd1300ae068289c85da94003ef6d57638aec3d34d46474f80c99eafe6b146dbf331f412c203d745bd360
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gitlab-qa (8.3.0)
4
+ gitlab-qa (8.4.0)
5
5
  activesupport (~> 6.1)
6
6
  gitlab (~> 4.18.0)
7
7
  http (~> 5.0)
@@ -14,8 +14,14 @@ module Gitlab
14
14
 
15
15
  def initialize
16
16
  @docker = Docker::Engine.new(stream_output: true) # stream test output directly instead of through logger
17
- @volumes = {}
18
17
  @env = {}
18
+ @volumes = {}
19
+ @default_volumes = { '/var/run/docker.sock' => '/var/run/docker.sock' }
20
+ return if Runtime::Env.qa_knapsack_report_path.blank?
21
+
22
+ @default_volumes[Runtime::Env.qa_knapsack_report_path] = File.join(
23
+ Docker::Volumes::QA_CONTAINER_WORKDIR, 'knapsack'
24
+ )
19
25
  end
20
26
 
21
27
  def perform
@@ -59,12 +65,12 @@ module Gitlab
59
65
  command.env(key, value)
60
66
  end
61
67
 
62
- command.volume('/var/run/docker.sock', '/var/run/docker.sock')
63
- command.volume(File.join(Runtime::Env.host_artifacts_dir, name), File.join(Docker::Volumes::QA_CONTAINER_WORKDIR, 'tmp'))
68
+ command.volume(
69
+ File.join(Runtime::Env.host_artifacts_dir, name),
70
+ File.join(Docker::Volumes::QA_CONTAINER_WORKDIR, 'tmp')
71
+ )
64
72
 
65
- @volumes.to_h.each do |to, from|
66
- command.volume(to, from)
67
- end
73
+ volumes.to_h.merge(default_volumes).each { |to, from| command.volume(to, from) }
68
74
 
69
75
  command.name(name)
70
76
  end
@@ -73,6 +79,8 @@ module Gitlab
73
79
 
74
80
  private
75
81
 
82
+ attr_reader :default_volumes
83
+
76
84
  def docker_pull_qa_image_if_needed
77
85
  @docker.login(**release.login_params) if release.login_params
78
86
 
@@ -119,19 +119,11 @@ module Gitlab
119
119
  end
120
120
 
121
121
  def container_exists?(name)
122
- Docker::Command.execute("container inspect #{name}")
123
- rescue Docker::Shellout::StatusError
124
- false
125
- else
126
- true
122
+ !Docker::Command.execute("container list --all --format '{{.Names}}' --filter name=^#{name}$").empty?
127
123
  end
128
124
 
129
125
  def network_exists?(name)
130
- Docker::Command.execute("network inspect #{name}")
131
- rescue Docker::Shellout::StatusError
132
- false
133
- else
134
- true
126
+ !Docker::Command.execute("network list --format '{{.Name}}' --filter name=^#{name}$").empty?
135
127
  end
136
128
 
137
129
  def network_create(name)
@@ -9,19 +9,19 @@ module Gitlab
9
9
  (-qa)?
10
10
  (:(?<tag>.+))?
11
11
  \z
12
- /xi
12
+ /xi.freeze
13
13
  CUSTOM_GITLAB_IMAGE_REGEX = %r{
14
14
  \A
15
15
  (?<image_without_tag>
16
- (?<registry>[^\/:]+(:(?<port>\d+))?)
17
- .+
16
+ (?<registry>[^/:]+(:(?<port>\d+))?)
17
+ (?<project>.+)
18
18
  gitlab-
19
19
  (?<edition>ce|ee)
20
20
  )
21
21
  (-qa)?
22
22
  (:(?<tag>.+))?
23
23
  \z
24
- }xi
24
+ }xi.freeze
25
25
 
26
26
  # Official dev tag example:
27
27
  # 12.5.4(-rc42)-ee
@@ -35,7 +35,7 @@ module Gitlab
35
35
  \A
36
36
  (?<version>\d+\.\d+.\d+(?:-rc\d+)?)-(?<edition>ce|ee)
37
37
  \z
38
- /xi
38
+ /xi.freeze
39
39
 
40
40
  # Dev tag example:
41
41
  # 12.1.201906121026-325a6632895.b340d0bd35d
@@ -47,9 +47,9 @@ module Gitlab
47
47
  # version
48
48
  DEV_TAG_REGEX = /
49
49
  \A
50
- (?<version>\d+\.\d+(.\d+)?)\.(?<timestamp>\d+)\-(?<gitlab_ref>[A-Za-z0-9]+)\.(?<omnibus_ref>[A-Za-z0-9]+)
50
+ (?<version>\d+\.\d+(.\d+)?)\.(?<timestamp>\d+)-(?<gitlab_ref>[A-Za-z0-9]+)\.(?<omnibus_ref>[A-Za-z0-9]+)
51
51
  \z
52
- /xi
52
+ /xi.freeze
53
53
 
54
54
  DEFAULT_TAG = 'latest'
55
55
  DEFAULT_CANONICAL_TAG = 'nightly'
@@ -63,8 +63,9 @@ module Gitlab
63
63
 
64
64
  def initialize(release)
65
65
  @release = release.to_s.downcase
66
+ return if valid?
66
67
 
67
- raise InvalidImageNameError, "The release image name '#{@release}' does not have the expected format." unless valid?
68
+ raise InvalidImageNameError, "The release image name '#{@release}' does not have the expected format."
68
69
  end
69
70
 
70
71
  def to_s
@@ -106,7 +107,14 @@ module Gitlab
106
107
  end
107
108
 
108
109
  def qa_image
109
- "#{image}-qa"
110
+ @qa_image ||= if omnibus_mirror?
111
+ omnibus_project = image.match(CUSTOM_GITLAB_IMAGE_REGEX)[:project]
112
+ gitlab_project = "/gitlab-org/gitlab/"
113
+
114
+ "#{image.gsub(omnibus_project, gitlab_project)}-qa"
115
+ else
116
+ "#{image}-qa"
117
+ end
110
118
  end
111
119
 
112
120
  def project_name
@@ -133,7 +141,7 @@ module Gitlab
133
141
  if dev_gitlab_org? && (match_data = tag.match(DEV_TAG_REGEX))
134
142
  "#{match_data[:version]}-#{match_data[:gitlab_ref]}"
135
143
  else
136
- tag.sub(/[-\.]([ce]e)(\.(\d+))?\z/, '-\1')
144
+ tag.sub(/[-.]([ce]e)(\.(\d+))?\z/, '-\1')
137
145
  end
138
146
  end
139
147
 
@@ -158,6 +166,7 @@ module Gitlab
158
166
 
159
167
  [Runtime::Env.gitlab_username, Runtime::Env.qa_access_token]
160
168
  end
169
+
161
170
  {
162
171
  username: username,
163
172
  password: password,
@@ -81,6 +81,7 @@ module Gitlab
81
81
  'KNAPSACK_TEST_FILE_PATTERN' => :knapsack_test_file_pattern,
82
82
  'KNAPSACK_TEST_DIR' => :knapsack_test_dir,
83
83
  'QA_KNAPSACK_REPORT_GCS_CREDENTIALS' => :qa_knapsack_report_gcs_credentials,
84
+ 'QA_KNAPSACK_REPORT_PATH' => :qa_knapsack_report_path,
84
85
  'CI' => :ci,
85
86
  'CI_COMMIT_REF_NAME' => :ci_commit_ref_name,
86
87
  'CI_JOB_NAME' => :ci_job_name,
@@ -29,7 +29,6 @@ module Gitlab
29
29
  specs.suite = @suite
30
30
  specs.release = release
31
31
  specs.args = non_rspec_args.push(*args)
32
- specs.volumes[host_knapsack_report_path] = "/home/gitlab/qa/knapsack" if host_knapsack_report_path
33
32
  end
34
33
  end
35
34
 
@@ -40,10 +39,6 @@ module Gitlab
40
39
  def deployment_component
41
40
  raise NotImplementedError, 'Please define the Component for the deployment environment associated with this scenario.'
42
41
  end
43
-
44
- def host_knapsack_report_path
45
- ENV["QA_KNAPSACK_REPORT_PATH"]
46
- end
47
42
  end
48
43
  end
49
44
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Gitlab
4
4
  module QA
5
- VERSION = '8.3.0'
5
+ VERSION = '8.4.0'
6
6
  end
7
7
  end
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: 8.3.0
4
+ version: 8.4.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: 2022-08-09 00:00:00.000000000 Z
11
+ date: 2022-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: climate_control