ci-queue 0.58.0 → 0.60.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: 0302564aa747e3b115328f8e8a09ba89e319631c885eb6250236a4f53d5d4b3f
4
- data.tar.gz: c09e4e48c6fcded24e23673d39beb5374960e95ac47a1f74805dce6e868c1ae8
3
+ metadata.gz: 4bec940c2c3eedb719c7292b249d244ab9e26a17c786e34eaf11d114c458478a
4
+ data.tar.gz: '039b0d061f68b9c4c77438681c2f4110042087d5a0ed4f0a4c31276aa79ede7a'
5
5
  SHA512:
6
- metadata.gz: d885b7fd5fbaaefb1fb3271a5364285b0b4a16a2e58449beae1e9f1a8e430f9e48554f7e707299124b4ae132e0122679b8a2c1163f4d22e2707a03fdba3f09b4
7
- data.tar.gz: daa111f58048ce32e754698858305ed48d68f35e4d60a023b5263674d3151386cb395a36e1a40b6926ae874b1b4187567b9937632deedc77a474b63d34c5f9b2
6
+ metadata.gz: e22b92fe85dc0ed9d1f64e5e7a3e430d017b393ba24a60647cb02ff715351f338117cd304ee7c3e4dd9b9b48c65476565202770e2b25a6bdc68b4282549fc52d
7
+ data.tar.gz: 1446c540b88521268c6005412b5243d5da4ba986a2815a14aeb059a7c5506473dc61018da0588e807b2091b7def02f237505c3582c3761a2404a725594ef7a92
data/Gemfile.lock CHANGED
@@ -1,7 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ci-queue (0.58.0)
4
+ ci-queue (0.60.0)
5
+ logger
5
6
 
6
7
  GEM
7
8
  remote: https://rubygems.org/
@@ -30,6 +31,7 @@ GEM
30
31
  concurrent-ruby (~> 1.0)
31
32
  json (2.7.1)
32
33
  language_server-protocol (3.17.0.3)
34
+ logger (1.6.1)
33
35
  minitest (5.22.3)
34
36
  minitest-reporters (1.6.1)
35
37
  ansi
@@ -50,7 +52,7 @@ GEM
50
52
  redis-client (0.21.1)
51
53
  connection_pool
52
54
  regexp_parser (2.9.0)
53
- rexml (3.2.6)
55
+ rexml (3.3.8)
54
56
  rspec (3.13.0)
55
57
  rspec-core (~> 3.13.0)
56
58
  rspec-expectations (~> 3.13.0)
data/ci-queue.gemspec CHANGED
@@ -31,6 +31,8 @@ Gem::Specification.new do |spec|
31
31
 
32
32
  spec.metadata['allowed_push_host'] = 'https://rubygems.org'
33
33
 
34
+ spec.add_runtime_dependency 'logger'
35
+
34
36
  spec.add_development_dependency 'bundler'
35
37
  spec.add_development_dependency 'rake'
36
38
  spec.add_development_dependency 'minitest', ENV.fetch('MINITEST_VERSION', '~> 5.11')
@@ -39,6 +39,11 @@ module CI
39
39
  # it makes sense to retry for a while before giving up.
40
40
  reconnect_attempts: reconnect_attempts,
41
41
  middlewares: custom_middlewares,
42
+ # Hosted Redis servers use self signed certificates
43
+ # (because they do not own the domain they're running on such as compute-1.amazonaws.com)
44
+ # therefore a full SSL connection verification will fail.
45
+ # ci-queue should not contain any sensitive data, so we can just disable the verification.
46
+ ssl_params: { verify_mode: OpenSSL::SSL::VERIFY_NONE },
42
47
  custom: custom_config,
43
48
  )
44
49
  else
@@ -5,8 +5,6 @@ require 'set'
5
5
  module CI
6
6
  module Queue
7
7
  module Redis
8
- ReservationError = Class.new(StandardError)
9
-
10
8
  class << self
11
9
  attr_accessor :requeue_offset
12
10
  end
@@ -16,6 +16,7 @@ module CI
16
16
  module Redis
17
17
  Error = Class.new(StandardError)
18
18
  LostMaster = Class.new(Error)
19
+ ReservationError = Class.new(Error)
19
20
 
20
21
  class << self
21
22
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  module CI
4
4
  module Queue
5
- VERSION = '0.58.0'
5
+ VERSION = '0.60.0'
6
6
  DEV_SCRIPTS_ROOT = ::File.expand_path('../../../../../redis', __FILE__)
7
7
  RELEASE_SCRIPTS_ROOT = ::File.expand_path('../redis', __FILE__)
8
8
  end
@@ -37,7 +37,7 @@ module Minitest
37
37
  end
38
38
 
39
39
  build.worker_errors.to_a.sort.each do |worker_id, error|
40
- puts yellow("Worker #{worker_id } crashed")
40
+ puts red("Worker #{worker_id } crashed")
41
41
  puts error
42
42
  puts ""
43
43
  end
@@ -89,7 +89,7 @@ module Minitest
89
89
  else
90
90
  # If the job gets (automatically) retried and there are still workers running but not many tests left
91
91
  # in the queue, we assume by the time the application is booted the queue is empty and it's faster to no-op.
92
- if retry?
92
+ if retry? && queue.rescue_connection_errors { queue.queue_initialized? }
93
93
  remaining = queue.rescue_connection_errors { queue.remaining }.to_i
94
94
  running = queue.rescue_connection_errors { queue.running }.to_i
95
95
 
@@ -350,7 +350,7 @@ module Minitest
350
350
  end
351
351
 
352
352
  def populate_queue
353
- Minitest.queue.populate(Minitest.loaded_tests, random: ordering_seed, &:id)
353
+ Minitest.queue.populate(Minitest.loaded_tests, random: ordering_seed)
354
354
  end
355
355
 
356
356
  def set_load_path
@@ -266,6 +266,13 @@ module Minitest
266
266
  reopen_previous_step
267
267
  puts red("The heartbeat process died. This worker is exiting early.")
268
268
  exit!(41)
269
+ rescue CI::Queue::Redis::Error
270
+ reopen_previous_step
271
+ puts red("#{error.class}: #{error.message}")
272
+ error.backtrace.each do |frame|
273
+ puts red(frame)
274
+ end
275
+ exit!(41)
269
276
  rescue => error
270
277
  reopen_previous_step
271
278
  queue.report_worker_error(error)
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ci-queue
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.58.0
4
+ version: 0.60.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jean Boussier
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-10-04 00:00:00.000000000 Z
11
+ date: 2024-12-10 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: logger
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: bundler
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -242,7 +256,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
242
256
  - !ruby/object:Gem::Version
243
257
  version: '0'
244
258
  requirements: []
245
- rubygems_version: 3.5.20
259
+ rubygems_version: 3.5.23
246
260
  signing_key:
247
261
  specification_version: 4
248
262
  summary: Distribute tests over many workers using a queue