summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabio Pitino <fpitino@gitlab.com>2019-05-07 07:52:53 +0100
committerFabio Pitino <fpitino@gitlab.com>2019-05-07 08:07:16 +0100
commitc75b8ad4dadfa8f9676e0339e06408af3281f512 (patch)
tree34b287af35682e19db655af9b98eab1b56f18b2c
parent673ea5d2ac50e17a1839d0db83641e6851422f88 (diff)
downloadgitlab-ce-c75b8ad4dadfa8f9676e0339e06408af3281f512.tar.gz
Remove workaround by upgrading Fugit gem
Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/58241 * Upgrade Fugit gem to 1.2.1 which recognizes cron expressions for invalid days * Reverted previously implemented workaround * Leave test case which previously exposed the bug
-rw-r--r--Gemfile2
-rw-r--r--Gemfile.lock8
-rw-r--r--lib/gitlab/ci/cron_parser.rb10
-rw-r--r--spec/lib/gitlab/ci/cron_parser_spec.rb7
4 files changed, 6 insertions, 21 deletions
diff --git a/Gemfile b/Gemfile
index 1282ff0e20d..a21f9f19458 100644
--- a/Gemfile
+++ b/Gemfile
@@ -166,7 +166,7 @@ gem 'redis-namespace', '~> 1.6.0'
gem 'gitlab-sidekiq-fetcher', '~> 0.4.0', require: 'sidekiq-reliable-fetch'
# Cron Parser
-gem 'fugit', '~> 1.1'
+gem 'fugit', '~> 1.2.1'
# HTTP requests
gem 'httparty', '~> 0.16.4'
diff --git a/Gemfile.lock b/Gemfile.lock
index 9b1a036030a..9522f8fa9e0 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -190,7 +190,7 @@ GEM
equalizer (0.0.11)
erubi (1.8.0)
escape_utils (1.2.1)
- et-orbi (1.1.7)
+ et-orbi (1.2.1)
tzinfo
eventmachine (1.2.7)
excon (0.62.0)
@@ -264,8 +264,8 @@ GEM
foreman (0.84.0)
thor (~> 0.19.1)
formatador (0.2.5)
- fugit (1.1.9)
- et-orbi (~> 1.1, >= 1.1.7)
+ fugit (1.2.1)
+ et-orbi (~> 1.1, >= 1.1.8)
raabro (~> 1.1)
fuubar (2.2.0)
rspec-core (~> 3.0)
@@ -1056,7 +1056,7 @@ DEPENDENCIES
fog-rackspace (~> 0.1.1)
font-awesome-rails (~> 4.7)
foreman (~> 0.84.0)
- fugit (~> 1.1)
+ fugit (~> 1.2.1)
fuubar (~> 2.2.0)
gemojione (~> 3.3)
gettext (~> 3.2.2)
diff --git a/lib/gitlab/ci/cron_parser.rb b/lib/gitlab/ci/cron_parser.rb
index ae524654b7d..94f4a4e36c9 100644
--- a/lib/gitlab/ci/cron_parser.rb
+++ b/lib/gitlab/ci/cron_parser.rb
@@ -13,7 +13,7 @@ module Gitlab
def next_time_from(time)
@cron_line ||= try_parse_cron(@cron, @cron_timezone)
- find_next_time(time) if @cron_line.present?
+ @cron_line.next_time(time).utc.in_time_zone(Time.zone) if @cron_line.present?
end
def cron_valid?
@@ -49,14 +49,6 @@ module Gitlab
def try_parse_cron(cron, cron_timezone)
Fugit::Cron.parse("#{cron} #{cron_timezone}")
end
-
- def find_next_time(time)
- @cron_line.next_time(time).utc.in_time_zone(Time.zone)
- rescue RuntimeError => error
- raise error unless error.message =~ /too many loops/
- # Fugit::Cron raises a RuntimeError if :next_time does not find the next schedule
- # given an invalid pattern - E.g. try_parse_cron('0 12 31 2 *')
- end
end
end
end
diff --git a/spec/lib/gitlab/ci/cron_parser_spec.rb b/spec/lib/gitlab/ci/cron_parser_spec.rb
index a228334d53e..491e3fba9d9 100644
--- a/spec/lib/gitlab/ci/cron_parser_spec.rb
+++ b/spec/lib/gitlab/ci/cron_parser_spec.rb
@@ -181,13 +181,6 @@ describe Gitlab::Ci::CronParser do
it { expect(subject).to be_nil }
end
-
- context 'when cron is scheduled to a non existent day' do
- let(:cron) { '0 12 31 2 *' }
- let(:cron_timezone) { 'UTC' }
-
- it { expect(subject).to be_nil }
- end
end
describe '#cron_valid?' do