summaryrefslogtreecommitdiff
path: root/app/models/commit_status.rb
diff options
context:
space:
mode:
authorIgor <idrozdov@gitlab.com>2019-08-05 15:06:02 +0000
committerIgor <idrozdov@gitlab.com>2019-08-05 15:06:02 +0000
commit7efb062c3c3c7b44113d0dc0fe78fc9b8e95bd7c (patch)
treea12bde9bbeffcc0c365d3a29339d0389dcefdd8f /app/models/commit_status.rb
parent2bd1320f86b8cfd5d60199c5f7f0caa1cc2aa66b (diff)
parent3dfc89ade452ad7f0185653b30ed1d4bb2544fb0 (diff)
downloadgitlab-ce-id-test-codeowners.tar.gz
Merge branch 'master' into 'id-test-codeowners'id-test-codeowners
# Conflicts: # .gitlab/CODEOWNERS
Diffstat (limited to 'app/models/commit_status.rb')
-rw-r--r--app/models/commit_status.rb12
1 files changed, 11 insertions, 1 deletions
diff --git a/app/models/commit_status.rb b/app/models/commit_status.rb
index be6f3e9c5b0..a88cac6b8e6 100644
--- a/app/models/commit_status.rb
+++ b/app/models/commit_status.rb
@@ -43,6 +43,16 @@ class CommitStatus < ApplicationRecord
scope :after_stage, -> (index) { where('stage_idx > ?', index) }
scope :processables, -> { where(type: %w[Ci::Build Ci::Bridge]) }
+ scope :with_needs, -> (names = nil) do
+ needs = Ci::BuildNeed.scoped_build.select(1)
+ needs = needs.where(name: names) if names
+ where('EXISTS (?)', needs).preload(:needs)
+ end
+
+ scope :without_needs, -> do
+ where('NOT EXISTS (?)', Ci::BuildNeed.scoped_build.select(1))
+ end
+
# We use `CommitStatusEnums.failure_reasons` here so that EE can more easily
# extend this `Hash` with new values.
enum_with_nil failure_reason: ::CommitStatusEnums.failure_reasons
@@ -116,7 +126,7 @@ class CommitStatus < ApplicationRecord
commit_status.run_after_commit do
if pipeline_id
if complete? || manual?
- PipelineProcessWorker.perform_async(pipeline_id)
+ PipelineProcessWorker.perform_async(pipeline_id, [id])
else
PipelineUpdateWorker.perform_async(pipeline_id)
end