gitlab-qa 10.3.0 → 10.3.0.1

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: 2851a74117f3479437a3e355883c7a407d4f56c41aac2700028cd9686790f0ea
4
- data.tar.gz: a284df28173a258c4948ead8be3c677df487c585b60cc73ffe88d5c12b6281b5
3
+ metadata.gz: cfc87eff61f4ee1948666c002738047c9061df3f669c16b87a78887b68776f3c
4
+ data.tar.gz: 32514740f5d1cc8403d6b388c731048d85e5da441acaf687d7f8ddad72ad44a6
5
5
  SHA512:
6
- metadata.gz: 44a1c9743ce4fafbaad0e20f2de55598c4686598a2c3ac50d9da69565e72a477e3a0ab90f909fb32ed2b153129912b365db19ee9af91814bf6db707dc4bc70f4
7
- data.tar.gz: f2d8e7accf348103ff3f7ab85467186dd11a7c51a5cdb691e3e8999716272ba54a06204257395a7594ea832c60b93d33a11fd198c57b957609599638ab3b2672
6
+ metadata.gz: 29a26e723aac6ac6fad94630e0e5dfe1882aa7031474dcd20f781468105dfa77f6449430202f06875a400edbc71339c0eb4183303bd3cddd432105241ce1bafc
7
+ data.tar.gz: '08751aa4982005a4ac8b80998dd07ae31a4fb08c6a4539a20c09167ab382a7bed47a6c5b74478ed30bb6db05c91c2258e11d753774b4fe9d0d6b1c36ac592462'
data/.gitlab-ci.yml CHANGED
@@ -34,7 +34,7 @@ workflow:
34
34
  # For merge requests, create a pipeline.
35
35
  - if: '$CI_MERGE_REQUEST_IID'
36
36
  # For the default branch, create a pipeline (this includes on schedules, pushes, merges, etc.).
37
- - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
37
+ - if: '$CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH || $CI_COMMIT_REF_NAME =~ /^[\d-]+-stable$/'
38
38
  # For tags, create a pipeline.
39
39
  - if: '$CI_COMMIT_TAG'
40
40
  # When using Run pipeline button in the GitLab UI, from the project’s CI/CD > Pipelines section, create a pipeline.
@@ -46,6 +46,12 @@ variables:
46
46
  BUNDLE_SILENCE_ROOT_WARNING: "true"
47
47
  BUNDLE_SUPPRESS_INSTALL_USING_MESSAGES: "true"
48
48
 
49
+ # Override rules to allow creating backport releases
50
+ .release-base:
51
+ rules:
52
+ - if: '$CI_PIPELINE_SOURCE == "push" && ($CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH || $CI_COMMIT_REF_NAME =~ /^[\d-]+-stable$/)'
53
+ changes: ["lib/**/version.rb"]
54
+
49
55
  package-and-test-env:
50
56
  image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/alpine:latest
51
57
  stage: .pre
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gitlab-qa (10.3.0)
4
+ gitlab-qa (10.3.0.1)
5
5
  activesupport (~> 6.1)
6
6
  gitlab (~> 4.18.0)
7
7
  http (~> 5.0)
@@ -47,6 +47,10 @@ module Gitlab
47
47
 
48
48
  private
49
49
 
50
+ MAX_TAGS_HTTP_REQUESTS = 50
51
+ # https://docs.docker.com/docker-hub/api/latest/#tag/images/operation/GetNamespacesRepositoriesImages
52
+ TAGS_PER_PAGE = 100
53
+
50
54
  attr_reader :current_version, :edition, :logger
51
55
 
52
56
  # Current versions major version
@@ -155,28 +159,44 @@ module Gitlab
155
159
  # All available docker tags
156
160
  #
157
161
  # @return [Array<String>]
158
- # rubocop:disable Metrics/AbcSize
159
162
  def tags
160
163
  return @tags if defined?(@tags)
161
164
 
162
- logger.info("Fetching docker tags from 'gitlab/gitlab-#{edition}' registry")
165
+ MAX_TAGS_HTTP_REQUESTS.times do |index|
166
+ tag_list, more_data = fetch_tags(page: index + 1)
167
+
168
+ if tag_list
169
+ @tags = Array(@tags)
170
+ @tags += tag_list
171
+ end
172
+
173
+ break if tag_list.nil? || more_data.nil?
174
+ end
175
+
176
+ @tags
177
+ end
178
+
179
+ def fetch_tags(page:, per_page: TAGS_PER_PAGE)
180
+ logger.info("Fetching Docker tags page #{page} from 'gitlab/gitlab-#{edition}' registry")
163
181
  response = HttpRequest.make_http_request(
164
- url: "https://registry.hub.docker.com/v2/namespaces/gitlab/repositories/gitlab-#{edition}/tags?page_size=1000",
182
+ url: "https://registry.hub.docker.com/v2/namespaces/gitlab/repositories/gitlab-#{edition}/tags?page=#{page}&page_size=#{per_page}",
165
183
  fail_on_error: false
166
184
  )
167
185
 
168
186
  unless response.code == 200
169
187
  logger.error(" failed to fetch docker tags - code: #{response.code}, response: '#{response.body}'")
170
- return @tags = nil
188
+ return nil
171
189
  end
172
190
 
173
- @tags = JSON
174
- .parse(response.body, symbolize_names: true)
191
+ response = JSON.parse(response.body, symbolize_names: true)
192
+ matching_tags = response
175
193
  .fetch(:results)
176
194
  .map { |tag| tag[:name] }
177
- .select { |tag| tag.match?(VERSION_PATTERN) }
195
+ .grep(VERSION_PATTERN)
196
+ more_data = response.fetch(:next)
197
+
198
+ [matching_tags, more_data]
178
199
  end
179
- # rubocop:enable Metrics/AbcSize
180
200
  end
181
201
  end
182
202
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Gitlab
4
4
  module QA
5
- VERSION = '10.3.0'
5
+ VERSION = '10.3.0.1'
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: 10.3.0
4
+ version: 10.3.0.1
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-04-19 00:00:00.000000000 Z
11
+ date: 2023-07-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: climate_control