diff options
author | Kamil TrzciĆski <ayufan@ayufan.eu> | 2019-08-01 14:26:49 +0000 |
---|---|---|
committer | Sean McGivern <sean@gitlab.com> | 2019-08-01 14:26:49 +0000 |
commit | e7ee84aad4237eaa16f2aba75b4d2c7860625c9d (patch) | |
tree | 786c239cdf6568289f9b2df4dd1d85290c246b36 /app/models/commit_status.rb | |
parent | 2cf9769d12bb93c7a55432f8c8c08e89e6735461 (diff) | |
download | gitlab-ce-e7ee84aad4237eaa16f2aba75b4d2c7860625c9d.tar.gz |
Add support for DAG
This implements the support for `needs:` keyword
as part of GitLab CI. That makes some of the jobs
to be run out of order.
Diffstat (limited to 'app/models/commit_status.rb')
-rw-r--r-- | app/models/commit_status.rb | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/app/models/commit_status.rb b/app/models/commit_status.rb index be6f3e9c5b0..d7eb78db5b8 100644 --- a/app/models/commit_status.rb +++ b/app/models/commit_status.rb @@ -43,6 +43,12 @@ 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 + # 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 +122,7 @@ class CommitStatus < ApplicationRecord commit_status.run_after_commit do if pipeline_id if complete? || manual? - PipelineProcessWorker.perform_async(pipeline_id) + BuildProcessWorker.perform_async(id) else PipelineUpdateWorker.perform_async(pipeline_id) end |