diff options
author | Douwe Maan <douwe@selenight.nl> | 2017-06-01 16:36:04 -0500 |
---|---|---|
committer | Douwe Maan <douwe@selenight.nl> | 2017-06-02 11:43:32 -0500 |
commit | e4eac1fff1ba6d890f9f028dbfe47918b7876688 (patch) | |
tree | f4f08e065ca769e34c0e2139765b268c192260d2 /app/models/commit_status.rb | |
parent | a9dbda8605f2c3111c4e4775edf7f931e4260a41 (diff) | |
download | gitlab-ce-e4eac1fff1ba6d890f9f028dbfe47918b7876688.tar.gz |
Don’t schedule workers from inside transactions
Diffstat (limited to 'app/models/commit_status.rb')
-rw-r--r-- | app/models/commit_status.rb | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/app/models/commit_status.rb b/app/models/commit_status.rb index fe63728ea23..ce507f7774b 100644 --- a/app/models/commit_status.rb +++ b/app/models/commit_status.rb @@ -18,7 +18,7 @@ class CommitStatus < ActiveRecord::Base validates :name, presence: true alias_attribute :author, :user - + scope :failed_but_allowed, -> do where(allow_failure: true, status: [:failed, :canceled]) end @@ -83,14 +83,15 @@ class CommitStatus < ActiveRecord::Base next if transition.loopback? commit_status.run_after_commit do - pipeline.try do |pipeline| + if pipeline if complete? || manual? PipelineProcessWorker.perform_async(pipeline.id) else PipelineUpdateWorker.perform_async(pipeline.id) end - ExpireJobCacheWorker.perform_async(commit_status.id) end + + ExpireJobCacheWorker.perform_async(commit_status.id) end end |