ensure that the Time.now builds get started and tag the Sentry errors from cron
This commit is contained in:
parent
75bd65e56c
commit
d0a143d76a
|
@ -13,7 +13,7 @@ module Travis::API::V3
|
|||
elsif last_cron_build_date >= planned_time(LastBuild)
|
||||
planned_time(ThisBuild)
|
||||
else
|
||||
Time.now
|
||||
Time.now - 5.minutes
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -7,10 +7,11 @@ module Travis::API::V3
|
|||
|
||||
def start_all()
|
||||
Models::Cron.all.select do |cron|
|
||||
@cron = cron
|
||||
start(cron) if cron.next_enqueuing <= Time.now
|
||||
end
|
||||
rescue => e
|
||||
Raven.capture_exception(e)
|
||||
Raven.capture_exception(e, tags: { 'cron_id' => @cron.try(:id) })
|
||||
end
|
||||
|
||||
def start(cron)
|
||||
|
|
|
@ -43,11 +43,13 @@ describe Travis::API::V3::Models::Cron do
|
|||
describe "push build is ignored if disable by build is false" do
|
||||
|
||||
before do
|
||||
Timecop.return
|
||||
Timecop.travel(DateTime.new(2015, 12, 31, 16))
|
||||
end
|
||||
|
||||
after do
|
||||
Timecop.return
|
||||
Timecop.freeze(Time.now.utc)
|
||||
end
|
||||
|
||||
it "for daily builds" do
|
||||
|
@ -85,11 +87,13 @@ describe Travis::API::V3::Models::Cron do
|
|||
describe "disable by build works with build" do
|
||||
|
||||
before do
|
||||
Timecop.return
|
||||
Timecop.travel(DateTime.new(2015, 12, 31, 16))
|
||||
end
|
||||
|
||||
after do
|
||||
Timecop.return
|
||||
Timecop.freeze(Time.now.utc)
|
||||
end
|
||||
|
||||
it "for daily builds" do
|
||||
|
@ -121,11 +125,13 @@ describe Travis::API::V3::Models::Cron do
|
|||
describe "disable by build works without build" do
|
||||
|
||||
before do
|
||||
Timecop.return
|
||||
Timecop.travel(DateTime.new(2015, 12, 31, 16))
|
||||
end
|
||||
|
||||
after do
|
||||
Timecop.return
|
||||
Timecop.freeze(Time.now.utc)
|
||||
end
|
||||
|
||||
it "for daily builds" do
|
||||
|
@ -157,12 +163,12 @@ describe Travis::API::V3::Models::Cron do
|
|||
describe "build starts now if next build time is in the past" do
|
||||
|
||||
before do
|
||||
# nothing, this time
|
||||
# time freeze is performed in examples
|
||||
Timecop.return
|
||||
end
|
||||
|
||||
after do
|
||||
Timecop.return
|
||||
Timecop.freeze(Time.now.utc)
|
||||
end
|
||||
|
||||
it "for daily builds with disable_by_build true" do
|
||||
|
@ -170,7 +176,7 @@ describe Travis::API::V3::Models::Cron do
|
|||
cron = Travis::API::V3::Models::Cron.create(branch_id: branch.id, interval: 'daily', disable_by_build: true)
|
||||
build = Travis::API::V3::Models::Build.create(:repository_id => repo.id, :branch_name => branch.name, :event_type => 'cron')
|
||||
Timecop.freeze(DateTime.new(2016, 1, 1, 19))
|
||||
expect(cron.next_enqueuing).to be == DateTime.now
|
||||
expect(cron.next_enqueuing).to be == DateTime.now - 5.minutes
|
||||
build.destroy
|
||||
cron.destroy
|
||||
end
|
||||
|
@ -180,7 +186,7 @@ describe Travis::API::V3::Models::Cron do
|
|||
cron = Travis::API::V3::Models::Cron.create(branch_id: branch.id, interval: 'daily', disable_by_build: false)
|
||||
build = Travis::API::V3::Models::Build.create(:repository_id => repo.id, :branch_name => branch.name, :event_type => 'cron')
|
||||
Timecop.freeze(DateTime.new(2016, 1, 1, 19))
|
||||
expect(cron.next_enqueuing).to be == DateTime.now
|
||||
expect(cron.next_enqueuing).to be == DateTime.now - 5.minutes
|
||||
build.destroy
|
||||
cron.destroy
|
||||
end
|
||||
|
@ -190,7 +196,7 @@ describe Travis::API::V3::Models::Cron do
|
|||
cron = Travis::API::V3::Models::Cron.create(branch_id: branch.id, interval: 'weekly', disable_by_build: true)
|
||||
build = Travis::API::V3::Models::Build.create(:repository_id => repo.id, :branch_name => branch.name, :event_type => 'cron')
|
||||
Timecop.freeze(DateTime.new(2016, 1, 7, 19))
|
||||
expect(cron.next_enqueuing).to be == DateTime.now
|
||||
expect(cron.next_enqueuing).to be == DateTime.now - 5.minutes
|
||||
build.destroy
|
||||
cron.destroy
|
||||
end
|
||||
|
@ -200,7 +206,7 @@ describe Travis::API::V3::Models::Cron do
|
|||
cron = Travis::API::V3::Models::Cron.create(branch_id: branch.id, interval: 'weekly', disable_by_build: false)
|
||||
build = Travis::API::V3::Models::Build.create(:repository_id => repo.id, :branch_name => branch.name, :event_type => 'cron')
|
||||
Timecop.freeze(DateTime.new(2016, 1, 7, 19))
|
||||
expect(cron.next_enqueuing).to be == DateTime.now
|
||||
expect(cron.next_enqueuing).to be == DateTime.now - 5.minutes
|
||||
build.destroy
|
||||
cron.destroy
|
||||
end
|
||||
|
@ -210,7 +216,7 @@ describe Travis::API::V3::Models::Cron do
|
|||
cron = Travis::API::V3::Models::Cron.create(branch_id: branch.id, interval: 'monthly', disable_by_build: true)
|
||||
build = Travis::API::V3::Models::Build.create(:repository_id => repo.id, :branch_name => branch.name, :event_type => 'cron')
|
||||
Timecop.freeze(DateTime.new(2016, 1, 31, 19))
|
||||
expect(cron.next_enqueuing).to be == DateTime.now
|
||||
expect(cron.next_enqueuing).to be == DateTime.now - 5.minutes
|
||||
build.destroy
|
||||
cron.destroy
|
||||
end
|
||||
|
@ -220,7 +226,7 @@ describe Travis::API::V3::Models::Cron do
|
|||
cron = Travis::API::V3::Models::Cron.create(branch_id: branch.id, interval: 'monthly', disable_by_build: false)
|
||||
build = Travis::API::V3::Models::Build.create(:repository_id => repo.id, :branch_name => branch.name, :event_type => 'cron')
|
||||
Timecop.freeze(DateTime.new(2016, 1, 31, 19))
|
||||
expect(cron.next_enqueuing).to be == DateTime.now
|
||||
expect(cron.next_enqueuing).to be == DateTime.now - 5.minutes
|
||||
build.destroy
|
||||
cron.destroy
|
||||
end
|
||||
|
|
|
@ -26,7 +26,7 @@ describe Travis::API::V3::Queries::Crons do
|
|||
cron = Travis::API::V3::Models::Cron.create(branch_id: existing_branch.id, interval: 'daily', disable_by_build: false)
|
||||
error = StandardError.new('Konstantin broke all the thingz!')
|
||||
Travis::API::V3::Models::Cron.any_instance.stubs(:branch).raises(error)
|
||||
Raven.expects(:capture_exception).with(error)
|
||||
Raven.expects(:capture_exception).with(error, tags: {'cron_id' => cron.id })
|
||||
query.start_all
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue
Block a user