If we use Rails magic it's breaking this test:
spec/lib/gitlab/data_builder/pipeline_data_builder_spec.rb Because it would trigger the event just after saved and it would load no builds and cache it. We should really avoid adding more magic.
This commit is contained in:
parent
3f7680a619
commit
94b3d33de1
2 changed files with 5 additions and 7 deletions
|
@ -18,7 +18,6 @@ module Ci
|
|||
|
||||
# Invalidate object and save if when touched
|
||||
after_touch :update_state
|
||||
after_save :execute_hooks_if_status_changed
|
||||
after_save :keep_around_commits
|
||||
|
||||
# ref can't be HEAD or SHA, can only be branch/tag name
|
||||
|
@ -230,6 +229,7 @@ module Ci
|
|||
|
||||
def update_state
|
||||
statuses.reload
|
||||
last_status = status
|
||||
self.status = if yaml_errors.blank?
|
||||
statuses.latest.status || 'skipped'
|
||||
else
|
||||
|
@ -238,11 +238,9 @@ module Ci
|
|||
self.started_at = statuses.started_at
|
||||
self.finished_at = statuses.finished_at
|
||||
self.duration = statuses.latest.duration
|
||||
save
|
||||
end
|
||||
|
||||
def execute_hooks_if_status_changed
|
||||
execute_hooks if status_changed? && !skip_ci?
|
||||
saved = save
|
||||
execute_hooks if last_status != status && saved && !skip_ci?
|
||||
saved
|
||||
end
|
||||
|
||||
def execute_hooks
|
||||
|
|
|
@ -551,7 +551,7 @@ describe Ci::Pipeline, models: true do
|
|||
|
||||
before do
|
||||
WebMock.stub_request(:post, hook.url)
|
||||
pipeline.save
|
||||
pipeline.touch
|
||||
ProjectWebHookWorker.drain
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue