From 1be00090fd031c3f507c30531e6a6f332c456393 Mon Sep 17 00:00:00 2001 From: Agis Anastasopoulos Date: Fri, 28 Aug 2020 17:15:17 +0300 Subject: [PATCH] reporter: Report flaky jobs to Sentry Part of #21 --- lib/rspecq/reporter.rb | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/rspecq/reporter.rb b/lib/rspecq/reporter.rb index e9464bc..a58f5a7 100644 --- a/lib/rspecq/reporter.rb +++ b/lib/rspecq/reporter.rb @@ -46,8 +46,12 @@ def report @queue.record_build_time(tests_duration) + flaky_jobs = @queue.flaky_jobs + puts summary(@queue.example_failures, @queue.non_example_errors, - @queue.flaky_jobs, humanize_duration(tests_duration)) + flaky_jobs, humanize_duration(tests_duration)) + + flaky_jobs_to_sentry(flaky_jobs, tests_duration) exit 1 if !@queue.build_successful? end @@ -99,5 +103,20 @@ def failure_formatted(rspec_output) def humanize_duration(seconds) Time.at(seconds).utc.strftime("%H:%M:%S") end + + def flaky_jobs_to_sentry(jobs, build_duration) + return if jobs.empty? + + Raven.capture_message("Flaky jobs detected", level: "warning", extra: { + build: @build_id, + build_timeout: @timeout, + queue: @queue.inspect, + object: self.inspect, + pid: Process.pid, + flaky_jobs: jobs, + flaky_jobs_count: jobs.count, + build_duration: build_duration + }) + end end end