gitlab-qa 8.3.0 → 8.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 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