Semaphore lets you run Minitest tests in parallel jobs. If you want to get faster feedback from CI then you can try knapsack gem. It will split tests across jobs and make sure that tests will run comparable time on each job.
require 'knapsack' knapsack_adapter = Knapsack::Adapters::MinitestAdapter.bind knapsack_adapter.set_test_helper_path(__FILE__)
After tests pass your should copy knapsack json report which is rendered at the end of minitest results. Save it into your repository as knapsack_minitest_report.json file and commit. More info about generating report you will find in knapsack docs.
Knapsack supports Semaphore ENVs SEMAPHORE_THREAD_COUNT and SEMAPHORE_CURRENT_THREAD. The only thing you need to do is set up knapsack minitest command for as many jobs as you need. Here is an example:
Tests will be split across jobs.
Semaphore Docs are open source — Edit on GitHub