ci-queue 0.55.0 → 0.56.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/Gemfile.lock +1 -1
- data/lib/ci/queue/build_record.rb +8 -0
- data/lib/ci/queue/redis/build_record.rb +15 -0
- data/lib/ci/queue/redis/worker.rb +4 -0
- data/lib/ci/queue/version.rb +1 -1
- data/lib/minitest/queue/build_status_reporter.rb +8 -1
- data/lib/minitest/queue/runner.rb +1 -0
- data/lib/minitest/queue.rb +4 -0
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e463afd14fdd0af687967316891f41c3f6e8f227eeb4924b12448ce91749cf74
|
4
|
+
data.tar.gz: db803750f16b9a10ee3c5498b4c1eaa5df768247d39d7efa2abc3ae15a6efc00
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b99390737597eb6c3eb2faadff1dbb64b9dcd03b9a9906ed287350e35b164f60ea913e29227ebead7ebc98e10a088e394ae23051ed3c240d8c7b97b6bcb77cee
|
7
|
+
data.tar.gz: 6382ff6e7c0a486de687268b259046616c8299990b426255a415142e247991c38b7271cb31b4de0ded5dfe9ed12e20480fe7514a16542372a96e9ca6a650f7d4
|
data/Gemfile.lock
CHANGED
@@ -17,6 +17,21 @@ module CI
|
|
17
17
|
@queue.exhausted?
|
18
18
|
end
|
19
19
|
|
20
|
+
def report_worker_error(error)
|
21
|
+
redis.pipelined do |pipeline|
|
22
|
+
pipeline.hset(key('worker-errors'), config.worker_id, error.message)
|
23
|
+
pipeline.expire(key('worker-errors'), config.redis_ttl)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def worker_errors
|
28
|
+
redis.hgetall(key('worker-errors'))
|
29
|
+
end
|
30
|
+
|
31
|
+
def reset_worker_error
|
32
|
+
redis.hdel(key('worker-errors'), config.worker_id)
|
33
|
+
end
|
34
|
+
|
20
35
|
def failed_tests
|
21
36
|
redis.hkeys(key('error-reports'))
|
22
37
|
end
|
@@ -95,6 +95,10 @@ module CI
|
|
95
95
|
@build ||= CI::Queue::Redis::BuildRecord.new(self, redis, config)
|
96
96
|
end
|
97
97
|
|
98
|
+
def report_worker_error(error)
|
99
|
+
build.report_worker_error(error)
|
100
|
+
end
|
101
|
+
|
98
102
|
def acknowledge(test)
|
99
103
|
test_key = test.id
|
100
104
|
raise_on_mismatching_test(test_key)
|
data/lib/ci/queue/version.rb
CHANGED
@@ -36,11 +36,18 @@ module Minitest
|
|
36
36
|
puts ""
|
37
37
|
end
|
38
38
|
|
39
|
+
build.worker_errors.to_a.sort.each do |worker_id, error|
|
40
|
+
puts yellow("Worker #{worker_id } crashed")
|
41
|
+
puts error
|
42
|
+
puts ""
|
43
|
+
end
|
44
|
+
|
39
45
|
errors.empty?
|
40
46
|
end
|
41
47
|
|
42
48
|
def success?
|
43
|
-
build.error_reports.empty?
|
49
|
+
build.error_reports.empty? &&
|
50
|
+
build.worker_errors.empty?
|
44
51
|
end
|
45
52
|
|
46
53
|
def record(*)
|
data/lib/minitest/queue.rb
CHANGED
@@ -268,8 +268,12 @@ module Minitest
|
|
268
268
|
exit!(41)
|
269
269
|
rescue => error
|
270
270
|
reopen_previous_step
|
271
|
+
queue.report_worker_error(error)
|
271
272
|
puts red("This worker exited because of an uncaught application error:")
|
272
273
|
puts red("#{error.class}: #{error.message}")
|
274
|
+
error.backtrace.each do |frame|
|
275
|
+
puts red(frame)
|
276
|
+
end
|
273
277
|
exit!(42)
|
274
278
|
end
|
275
279
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ci-queue
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.56.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jean Boussier
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-07-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -227,7 +227,7 @@ licenses:
|
|
227
227
|
- MIT
|
228
228
|
metadata:
|
229
229
|
allowed_push_host: https://rubygems.org
|
230
|
-
post_install_message:
|
230
|
+
post_install_message:
|
231
231
|
rdoc_options: []
|
232
232
|
require_paths:
|
233
233
|
- lib
|
@@ -242,8 +242,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
242
242
|
- !ruby/object:Gem::Version
|
243
243
|
version: '0'
|
244
244
|
requirements: []
|
245
|
-
rubygems_version: 3.5.
|
246
|
-
signing_key:
|
245
|
+
rubygems_version: 3.5.16
|
246
|
+
signing_key:
|
247
247
|
specification_version: 4
|
248
248
|
summary: Distribute tests over many workers using a queue
|
249
249
|
test_files: []
|