From 06528eebb2255a77904d751e9f3934210cd5945b Mon Sep 17 00:00:00 2001
From: Kamil Trzcinski <ayufan@ayufan.eu>
Date: Fri, 14 Oct 2016 13:09:18 +0200
Subject: [PATCH] Re-run specs if failed

---
 .gitlab-ci.yml | 2 +-
 Gemfile        | 1 +
 Gemfile.lock   | 3 +++
 3 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 30471286026..48015d5ec2a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -99,7 +99,7 @@ update-knapsack:
     - export KNAPSACK_REPORT_PATH=knapsack/spinach_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json
     - export KNAPSACK_GENERATE_REPORT=true
     - cp knapsack/spinach_report.json ${KNAPSACK_REPORT_PATH}
-    - knapsack spinach
+    - if ! knapsack spinach "-r rerun"; then bundle exec spinach -r rerun $(cat tmp/spinach-rerun.txt); fi
   artifacts:
     expire_in: 31d
     paths:
diff --git a/Gemfile b/Gemfile
index 563851c25f5..5f754c1b66f 100644
--- a/Gemfile
+++ b/Gemfile
@@ -278,6 +278,7 @@ group :development, :test do
   gem 'rspec-rails',        '~> 3.5.0'
   gem 'rspec-retry',        '~> 0.4.5'
   gem 'spinach-rails',      '~> 0.2.1'
+  gem 'spinach-rerun-reporter', '~> 0.0.2'
 
   # Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826)
   gem 'minitest', '~> 5.7.0'
diff --git a/Gemfile.lock b/Gemfile.lock
index 60d434a1b69..a9892d1c130 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -700,6 +700,8 @@ GEM
       capybara (>= 2.0.0)
       railties (>= 3)
       spinach (>= 0.4)
+    spinach-rerun-reporter (0.0.2)
+      spinach (~> 0.8)
     spring (1.7.2)
     spring-commands-rspec (1.0.4)
       spring (>= 0.9.1)
@@ -962,6 +964,7 @@ DEPENDENCIES
   simplecov (= 0.12.0)
   slack-notifier (~> 1.2.0)
   spinach-rails (~> 0.2.1)
+  spinach-rerun-reporter (~> 0.0.2)
   spring (~> 1.7.0)
   spring-commands-rspec (~> 1.0.4)
   spring-commands-spinach (~> 1.1.0)
-- 
GitLab