summaryrefslogtreecommitdiff
path: root/app/models/ci
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/ci')
-rw-r--r--app/models/ci/pipeline.rb19
-rw-r--r--app/models/ci/stage.rb11
2 files changed, 19 insertions, 11 deletions
diff --git a/app/models/ci/pipeline.rb b/app/models/ci/pipeline.rb
index e64e16657fe..fb1d4720ba8 100644
--- a/app/models/ci/pipeline.rb
+++ b/app/models/ci/pipeline.rb
@@ -11,9 +11,7 @@ module Ci
belongs_to :auto_canceled_by, class_name: 'Ci::Pipeline'
belongs_to :pipeline_schedule, class_name: 'Ci::PipelineSchedule'
- has_many :auto_canceled_pipelines, class_name: 'Ci::Pipeline', foreign_key: 'auto_canceled_by_id'
- has_many :auto_canceled_jobs, class_name: 'CommitStatus', foreign_key: 'auto_canceled_by_id'
-
+ has_many :stages
has_many :statuses, class_name: 'CommitStatus', foreign_key: :commit_id
has_many :builds, foreign_key: :commit_id
has_many :trigger_requests, dependent: :destroy, foreign_key: :commit_id
@@ -28,6 +26,9 @@ module Ci
has_many :manual_actions, -> { latest.manual_actions }, foreign_key: :commit_id, class_name: 'Ci::Build'
has_many :artifacts, -> { latest.with_artifacts_not_expired }, foreign_key: :commit_id, class_name: 'Ci::Build'
+ has_many :auto_canceled_pipelines, class_name: 'Ci::Pipeline', foreign_key: 'auto_canceled_by_id'
+ has_many :auto_canceled_jobs, class_name: 'CommitStatus', foreign_key: 'auto_canceled_by_id'
+
delegate :id, to: :project, prefix: true
validates :sha, presence: { unless: :importing? }
@@ -296,17 +297,13 @@ module Ci
end
def stage_seeds
- return unless config_processor
-
- seeds_scope = { ref: ref, tag: tag?, trigger: trigger_requests.first }
+ return [] unless config_processor
- @seeds ||= config_processor.stage_seeds(seeds_scope).tap do |seeds|
- seeds.pipeline = self
- end
+ @stage_seeds ||= config_processor.stage_seeds(self)
end
- def has_stages?
- stage_seeds&.has_stages?
+ def has_stage_seeds?
+ stage_seeds.any?
end
def has_warnings?
diff --git a/app/models/ci/stage.rb b/app/models/ci/stage.rb
new file mode 100644
index 00000000000..59570924c8d
--- /dev/null
+++ b/app/models/ci/stage.rb
@@ -0,0 +1,11 @@
+module Ci
+ class Stage < ActiveRecord::Base
+ extend Ci::Model
+
+ belongs_to :project
+ belongs_to :pipeline
+
+ has_many :statuses, class_name: 'CommitStatus', foreign_key: :commit_id
+ has_many :builds, foreign_key: :commit_id
+ end
+end