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:
Lin Jen-Shin 2016-08-04 00:46:58 +08:00
parent 3f7680a619
commit 94b3d33de1
2 changed files with 5 additions and 7 deletions

View file

@ -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

View file

@ -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