Commit 20d8dc53 authored by Kamil Trzciński's avatar Kamil Trzciński

Merge branch '60480-rescue-build-preparing-errors' into 'master'

Rescue and log errors raised when preparing builds

Closes #60480

See merge request gitlab-org/gitlab-ce!27351
parents 25af3a15 781cd4a2
...@@ -11,9 +11,11 @@ module Ci ...@@ -11,9 +11,11 @@ module Ci
def execute def execute
prerequisites.each(&:complete!) prerequisites.each(&:complete!)
unless build.enqueue build.enqueue!
build.drop!(:unmet_prerequisites) rescue => e
end Gitlab::Sentry.track_acceptable_exception(e, extra: { build_id: build.id })
build.drop(:unmet_prerequisites)
end end
private private
......
...@@ -38,7 +38,21 @@ describe Ci::PrepareBuildService do ...@@ -38,7 +38,21 @@ describe Ci::PrepareBuildService do
end end
it 'drops the build' do it 'drops the build' do
expect(build).to receive(:drop!).with(:unmet_prerequisites).once expect(build).to receive(:drop).with(:unmet_prerequisites).once
subject
end
end
context 'prerequisites raise an error' do
before do
allow(prerequisite).to receive(:complete!).and_raise Kubeclient::HttpError.new(401, 'unauthorized', nil)
end
it 'drops the build and notifies Sentry' do
expect(build).to receive(:drop).with(:unmet_prerequisites).once
expect(Gitlab::Sentry).to receive(:track_acceptable_exception)
.with(instance_of(Kubeclient::HttpError), hash_including(extra: { build_id: build.id }))
subject subject
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment