From c9c6af4cc974193226ac123a3d8cdff3e00c62e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Coutable?= <remy@rymai.me> Date: Mon, 20 Jan 2020 15:26:49 +0100 Subject: [PATCH] Prune flaky examples after 30 days MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rémy Coutable <remy@rymai.me> --- .gitlab/ci/test-metadata.gitlab-ci.yml | 2 +- lib/rspec_flaky/report.rb | 2 +- scripts/{ => flaky_examples}/detect-new-flaky-examples | 0 .../prune-old-flaky-examples} | 2 +- scripts/rspec_helpers.sh | 2 +- spec/lib/rspec_flaky/report_spec.rb | 8 ++++---- 6 files changed, 8 insertions(+), 8 deletions(-) rename scripts/{ => flaky_examples}/detect-new-flaky-examples (100%) rename scripts/{prune-old-flaky-specs => flaky_examples/prune-old-flaky-examples} (90%) diff --git a/.gitlab/ci/test-metadata.gitlab-ci.yml b/.gitlab/ci/test-metadata.gitlab-ci.yml index 21af0d373bc8..4ec0dc70ae66 100644 --- a/.gitlab/ci/test-metadata.gitlab-ci.yml +++ b/.gitlab/ci/test-metadata.gitlab-ci.yml @@ -64,4 +64,4 @@ flaky-examples-check: script: - '[[ -f $NEW_FLAKY_SPECS_REPORT ]] || echo "{}" > ${NEW_FLAKY_SPECS_REPORT}' - scripts/merge-reports ${NEW_FLAKY_SPECS_REPORT} rspec_flaky/new_*_*.json - - scripts/detect-new-flaky-examples $NEW_FLAKY_SPECS_REPORT + - scripts/flaky_examples/detect-new-flaky-examples $NEW_FLAKY_SPECS_REPORT diff --git a/lib/rspec_flaky/report.rb b/lib/rspec_flaky/report.rb index 9a0fb88c4243..d88233aea8e8 100644 --- a/lib/rspec_flaky/report.rb +++ b/lib/rspec_flaky/report.rb @@ -10,7 +10,7 @@ module RspecFlaky # This class is responsible for loading/saving JSON reports, and pruning # outdated examples. class Report < SimpleDelegator - OUTDATED_DAYS_THRESHOLD = 90 + OUTDATED_DAYS_THRESHOLD = 30 attr_reader :flaky_examples diff --git a/scripts/detect-new-flaky-examples b/scripts/flaky_examples/detect-new-flaky-examples similarity index 100% rename from scripts/detect-new-flaky-examples rename to scripts/flaky_examples/detect-new-flaky-examples diff --git a/scripts/prune-old-flaky-specs b/scripts/flaky_examples/prune-old-flaky-examples similarity index 90% rename from scripts/prune-old-flaky-specs rename to scripts/flaky_examples/prune-old-flaky-examples index a00a334fd6e0..7700b93438b1 100755 --- a/scripts/prune-old-flaky-specs +++ b/scripts/flaky_examples/prune-old-flaky-examples @@ -24,5 +24,5 @@ puts "Current report has #{report.size} entries." new_report = report.prune_outdated -puts "New report has #{new_report.size} entries: #{report.size - new_report.size} entries older than 90 days were removed." +puts "New report has #{new_report.size} entries: #{report.size - new_report.size} entries older than #{RspecFlaky::Report::OUTDATED_DAYS_THRESHOLD} days were removed." puts "Saved #{new_report_file}." if new_report.write(new_report_file) diff --git a/scripts/rspec_helpers.sh b/scripts/rspec_helpers.sh index 23e769809266..8762108066dc 100644 --- a/scripts/rspec_helpers.sh +++ b/scripts/rspec_helpers.sh @@ -25,7 +25,7 @@ function update_tests_metadata() { scripts/merge-reports "${FLAKY_RSPEC_SUITE_REPORT_PATH}" rspec_flaky/all_*.json export FLAKY_RSPEC_GENERATE_REPORT="1" - scripts/prune-old-flaky-specs "${FLAKY_RSPEC_SUITE_REPORT_PATH}" + scripts/flaky_examples/prune-old-flaky-examples "${FLAKY_RSPEC_SUITE_REPORT_PATH}" if [[ -n ${TESTS_METADATA_S3_BUCKET} ]]; then scripts/sync-reports put "${TESTS_METADATA_S3_BUCKET}" "${FLAKY_RSPEC_SUITE_REPORT_PATH}" diff --git a/spec/lib/rspec_flaky/report_spec.rb b/spec/lib/rspec_flaky/report_spec.rb index 6a98a7a4e6b0..1f0eff83db06 100644 --- a/spec/lib/rspec_flaky/report_spec.rb +++ b/spec/lib/rspec_flaky/report_spec.rb @@ -3,11 +3,11 @@ require 'spec_helper' describe RspecFlaky::Report, :aggregate_failures do - let(:a_hundred_days) { 3600 * 24 * 100 } + let(:thirty_one_days) { 3600 * 24 * 31 } let(:collection_hash) do { a: { example_id: 'spec/foo/bar_spec.rb:2' }, - b: { example_id: 'spec/foo/baz_spec.rb:3', first_flaky_at: (Time.now - a_hundred_days).to_s, last_flaky_at: (Time.now - a_hundred_days).to_s } + b: { example_id: 'spec/foo/baz_spec.rb:3', first_flaky_at: (Time.now - thirty_one_days).to_s, last_flaky_at: (Time.now - thirty_one_days).to_s } } end let(:suite_flaky_example_report) do @@ -109,7 +109,7 @@ end describe '#prune_outdated' do - it 'returns a new collection without the examples older than 90 days by default' do + it 'returns a new collection without the examples older than 30 days by default' do new_report = flaky_examples.to_h.dup.tap { |r| r.delete(:b) } new_flaky_examples = report.prune_outdated @@ -119,7 +119,7 @@ end it 'accepts a given number of days' do - new_flaky_examples = report.prune_outdated(days: 200) + new_flaky_examples = report.prune_outdated(days: 32) expect(new_flaky_examples.to_h).to eq(report.to_h) end -- GitLab