From 8c35d163a5c50eeb30220141036dac0c5dad295c Mon Sep 17 00:00:00 2001
From: Yamagishi Kazutoshi <ykzts@desire.sh>
Date: Sun, 6 May 2018 17:55:50 +0900
Subject: [PATCH] Port travis_retry for CI (#7379)
* Port travis_retry for CI
* Add license
---
.circleci/config.yml | 4 ++--
Gemfile | 1 -
Gemfile.lock | 3 ---
bin/retry | 46 ++++++++++++++++++++++++++++++++++++++++++++
spec/spec_helper.rb | 8 --------
5 files changed, 48 insertions(+), 14 deletions(-)
create mode 100755 bin/retry
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 70d03f6b94..fc9c7e22b7 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -90,7 +90,7 @@ aliases:
command: ./bin/rails parallel:create parallel:load_schema parallel:prepare
- run:
name: Run Tests
- command: bundle exec parallel_test ./spec/ --group-by filesize --type rspec
+ command: ./bin/retry bundle exec parallel_test ./spec/ --group-by filesize --type rspec
jobs:
install:
@@ -150,7 +150,7 @@ jobs:
- image: circleci/node:8.11.1-stretch
steps:
- *attach_workspace
- - run: yarn test:jest
+ - run: ./bin/retry yarn test:jest
check-i18n:
<<: *defaults
diff --git a/Gemfile b/Gemfile
index 98718f87d0..2beac94d2c 100644
--- a/Gemfile
+++ b/Gemfile
@@ -112,7 +112,6 @@ group :test do
gem 'microformats', '~> 4.0'
gem 'rails-controller-testing', '~> 1.0'
gem 'rspec-sidekiq', '~> 3.0'
- gem 'rspec-retry', '~> 0.5', require: false
gem 'simplecov', '~> 0.16', require: false
gem 'webmock', '~> 3.3'
gem 'parallel_tests', '~> 2.21'
diff --git a/Gemfile.lock b/Gemfile.lock
index f4be9bf9ca..6a579d53bb 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -501,8 +501,6 @@ GEM
rspec-expectations (~> 3.7.0)
rspec-mocks (~> 3.7.0)
rspec-support (~> 3.7.0)
- rspec-retry (0.5.7)
- rspec-core (> 3.3)
rspec-sidekiq (3.0.3)
rspec-core (~> 3.0, >= 3.0.0)
sidekiq (>= 2.4.0)
@@ -726,7 +724,6 @@ DEPENDENCIES
redis-rails (~> 5.0)
rqrcode (~> 0.10)
rspec-rails (~> 3.7)
- rspec-retry (~> 0.5)
rspec-sidekiq (~> 3.0)
rubocop (~> 0.55)
ruby-progressbar (~> 1.4)
diff --git a/bin/retry b/bin/retry
new file mode 100755
index 0000000000..419ece62a5
--- /dev/null
+++ b/bin/retry
@@ -0,0 +1,46 @@
+#!/bin/bash
+# https://github.com/travis-ci/travis-build/blob/cbe49ea239ab37b9b38b5b44d287b7ec7a108c16/lib/travis/build/templates/header.sh#L243-L260
+#
+# MIT LICENSE
+#
+# Copyright (c) 2016 Travis CI GmbH <contact@travis-ci.org>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+retry() {
+ local result=0
+ local count=1
+
+ while [ $count -le 3 ]; do
+ if [ $result -ne 0 ]; then
+ echo -e "\n${ANSI_RED}The command \"$@\" failed. Retrying, $count of 3.${ANSI_RESET}\n" >&2
+ fi
+
+ "$@" && { result=0 && break; } || result=$?
+ count=$(($count + 1))
+ sleep 1
+ done
+
+ if [ $count -gt 3 ]; then
+ echo -e "\n${ANSI_RED}The command \"$@\" failed 3 times.${ANSI_RESET}\n" >&2
+ fi
+
+ return $result
+}
+
+retry $@
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 9030329373..a0466dd4bf 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -1,4 +1,3 @@
-#require 'rspec/retry'
require 'simplecov'
GC.disable
@@ -12,9 +11,6 @@ end
gc_counter = -1
RSpec.configure do |config|
- #config.verbose_retry = true
- #config.display_try_failure_messages = true
-
config.expect_with :rspec do |expectations|
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
end
@@ -29,10 +25,6 @@ RSpec.configure do |config|
end
end
- #config.around :each do |ex|
- # ex.run_with_retry retry: 3
- #end
-
config.before :suite do
Chewy.strategy(:bypass)
end
--
GitLab