Skip to content

Commit e04b563

Browse files
committed
feat(ci): bisect flaky tests
1 parent 0536e07 commit e04b563

File tree

4 files changed

+28
-4
lines changed

4 files changed

+28
-4
lines changed

.github/workflows/flaky.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,11 @@ jobs:
5959
- name: Set Up Actions
6060
uses: actions/checkout@v4
6161
- uses: ./.github/actions/test-runner
62+
id: test
6263
with:
6364
crdb: ${{ matrix.crdb }}
6465
ruby: ${{ matrix.ruby }}
6566
TESTOPTS: --fail-fast
67+
- name: Bisect failing test
68+
if: ${{ failure() && steps.test.conclusion == 'failure' }}
69+
run: bin/minitest_bisect ${{ matrix.seed }}

Gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ group :development, :test do
5454

5555
gem "rake"
5656
gem "debug"
57+
gem "minitest-bisect", github: "BuonOmo/minitest-bisect", branch: "main"
5758
gem "minitest-excludes", "~> 2.0.1"
5859
gem "minitest-github_action_reporter", github: "BuonOmo/minitest-github_action_reporter", require: "minitest/github_action_reporter_plugin"
5960
gem "ostruct", "~> 0.6"

bin/minitest_bisect

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/usr/bin/env -S bundle exec ruby
2+
3+
require 'rake/file_list'
4+
require_relative '../test/support/paths_cockroachdb'
5+
require_relative '../test/support/rake_helpers'
6+
7+
libs = ARTest::CockroachDB.test_load_paths
8+
test_files = RakeHelpers.test_files
9+
10+
Dir.chdir(File.dirname __dir__) do
11+
system(
12+
"bundle",
13+
"exec",
14+
"minitest_bisect",
15+
"--seed=#{ARGV[0]}",
16+
"-I" + libs.join(":"),
17+
*test_files
18+
)
19+
end

test/support/rake_helpers.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@ def test_files
2626

2727
def all_test_files
2828
activerecord_test_files =
29-
FileList["#{ARTest::CockroachDB.root_activerecord}/test/cases/**/*_test.rb"].
29+
::Rake::FileList["#{ARTest::CockroachDB.root_activerecord}/test/cases/**/*_test.rb"].
3030
reject { _1.include?("/adapters/") || _1.include?("/encryption/performance") } +
31-
FileList["#{ARTest::CockroachDB.root_activerecord}/test/cases/adapters/postgresql/**/*_test.rb"]
31+
::Rake::FileList["#{ARTest::CockroachDB.root_activerecord}/test/cases/adapters/postgresql/**/*_test.rb"]
3232

33-
cockroachdb_test_files = FileList['test/cases/**/*_test.rb']
33+
cockroachdb_test_files = ::Rake::FileList['test/cases/**/*_test.rb']
3434

35-
FileList[COCKROACHDB_TEST_HELPER] + activerecord_test_files + cockroachdb_test_files
35+
::Rake::FileList[COCKROACHDB_TEST_HELPER] + activerecord_test_files + cockroachdb_test_files
3636
end
3737
end

0 commit comments

Comments
 (0)