Skip to content
Snippets Groups Projects
Commit a6778fc6 authored by Francisco Javier López's avatar Francisco Javier López Committed by Grzegorz Bizon
Browse files

Rename project's pipelines relation

parent 107ff10e
No related branches found
No related tags found
No related merge requests found
Showing
with 49 additions and 34 deletions
Loading
Loading
@@ -22,7 +22,7 @@ class Projects::BranchesController < Projects::ApplicationController
# Fetch branches for the specified mode
fetch_branches_by_mode
 
@refs_pipelines = @project.pipelines.latest_successful_for_refs(@branches.map(&:name))
@refs_pipelines = @project.ci_pipelines.latest_successful_for_refs(@branches.map(&:name))
@merged_branch_names = repository.merged_branch_names(@branches.map(&:name))
 
# n+1: https://gitlab.com/gitlab-org/gitaly/issues/992
Loading
Loading
Loading
Loading
@@ -46,7 +46,7 @@ class Projects::PipelinesController < Projects::ApplicationController
end
 
def new
@pipeline = project.pipelines.new(ref: @project.default_branch)
@pipeline = project.all_pipelines.new(ref: @project.default_branch)
end
 
def create
Loading
Loading
@@ -142,9 +142,9 @@ class Projects::PipelinesController < Projects::ApplicationController
@charts[:pipeline_times] = Gitlab::Ci::Charts::PipelineTime.new(project)
 
@counts = {}
@counts[:total] = @project.pipelines.count(:all)
@counts[:success] = @project.pipelines.success.count(:all)
@counts[:failed] = @project.pipelines.failed.count(:all)
@counts[:total] = @project.all_pipelines.count(:all)
@counts[:success] = @project.all_pipelines.success.count(:all)
@counts[:failed] = @project.all_pipelines.failed.count(:all)
end
 
private
Loading
Loading
@@ -164,7 +164,7 @@ class Projects::PipelinesController < Projects::ApplicationController
# rubocop: disable CodeReuse/ActiveRecord
def pipeline
@pipeline ||= project
.pipelines
.all_pipelines
.includes(user: :status)
.find_by!(id: params[:id])
.present(current_user: current_user)
Loading
Loading
Loading
Loading
@@ -20,7 +20,7 @@ class Projects::TagsController < Projects::ApplicationController
@tags = Kaminari.paginate_array(@tags).page(params[:page])
 
tag_names = @tags.map(&:name)
@tags_pipelines = @project.pipelines.latest_successful_for_refs(tag_names)
@tags_pipelines = @project.ci_pipelines.latest_successful_for_refs(tag_names)
@releases = project.releases.where(tag: tag_names)
 
respond_to do |format|
Loading
Loading
Loading
Loading
@@ -8,7 +8,7 @@ class PipelinesFinder
def initialize(project, current_user, params = {})
@project = project
@current_user = current_user
@pipelines = project.pipelines
@pipelines = project.all_pipelines
@params = params
end
 
Loading
Loading
Loading
Loading
@@ -12,14 +12,14 @@ module Ci
include AtomicInternalId
include EnumWithNil
 
belongs_to :project, inverse_of: :pipelines
belongs_to :project, inverse_of: :all_pipelines
belongs_to :user
belongs_to :auto_canceled_by, class_name: 'Ci::Pipeline'
belongs_to :pipeline_schedule, class_name: 'Ci::PipelineSchedule'
belongs_to :merge_request, class_name: 'MergeRequest'
 
has_internal_id :iid, scope: :project, presence: false, init: ->(s) do
s&.project&.pipelines&.maximum(:iid) || s&.project&.pipelines&.count
s&.project&.all_pipelines&.maximum(:iid) || s&.project&.all_pipelines&.count
end
 
has_many :stages, -> { order(position: :asc) }, inverse_of: :pipeline
Loading
Loading
@@ -174,6 +174,7 @@ module Ci
end
 
scope :internal, -> { where(source: internal_sources) }
scope :ci_sources, -> { where(config_source: ci_sources_values) }
 
scope :sort_by_merge_request_pipelines, -> do
sql = 'CASE ci_pipelines.source WHEN (?) THEN 0 ELSE 1 END, ci_pipelines.id DESC'
Loading
Loading
@@ -271,6 +272,10 @@ module Ci
sources.reject { |source| source == "external" }.values
end
 
def self.ci_sources_values
config_sources.values_at(:repository_source, :auto_devops_source, :unknown_source)
end
def stages_count
statuses.select(:stage).distinct.count
end
Loading
Loading
Loading
Loading
@@ -298,7 +298,7 @@ class Commit
end
 
def pipelines
project.pipelines.where(sha: sha)
project.ci_pipelines.where(sha: sha)
end
 
def last_pipeline
Loading
Loading
@@ -312,7 +312,7 @@ class Commit
end
 
def status_for_project(ref, pipeline_project)
pipeline_project.pipelines.latest_status_per_commit(id, ref)[id]
pipeline_project.ci_pipelines.latest_status_per_commit(id, ref)[id]
end
 
def set_status_for_ref(ref, status)
Loading
Loading
Loading
Loading
@@ -24,7 +24,7 @@ class CommitCollection
# Setting this status ahead of time removes the need for running a query for
# every commit we're displaying.
def with_pipeline_status
statuses = project.pipelines.latest_status_per_commit(map(&:id), ref)
statuses = project.ci_pipelines.latest_status_per_commit(map(&:id), ref)
 
each do |commit|
commit.set_status_for_ref(ref, statuses[commit.id])
Loading
Loading
Loading
Loading
@@ -1056,7 +1056,7 @@ class MergeRequest < ActiveRecord::Base
def all_pipelines(shas: all_commit_shas)
return Ci::Pipeline.none unless source_project
 
@all_pipelines ||= source_project.pipelines
@all_pipelines ||= source_project.ci_pipelines
.where(sha: shas, ref: source_branch)
.where(merge_request: [nil, self])
.sort_by_merge_request_pipelines
Loading
Loading
@@ -1220,7 +1220,7 @@ class MergeRequest < ActiveRecord::Base
end
 
def base_pipeline
@base_pipeline ||= project.pipelines
@base_pipeline ||= project.ci_pipelines
.order(id: :desc)
.find_by(sha: diff_base_sha)
end
Loading
Loading
Loading
Loading
@@ -247,7 +247,17 @@ class Project < ActiveRecord::Base
has_many :container_repositories, dependent: :destroy # rubocop:disable Cop/ActiveRecordDependent
 
has_many :commit_statuses
has_many :pipelines, class_name: 'Ci::Pipeline', inverse_of: :project
# The relation :all_pipelines is intented to be used when we want to get the
# whole list of pipelines associated to the project
has_many :all_pipelines, class_name: 'Ci::Pipeline', inverse_of: :project
# The relation :ci_pipelines is intented to be used when we want to get only
# those pipeline which are directly related to CI. There are
# other pipelines, like webide ones, that we won't retrieve
# if we use this relation.
has_many :ci_pipelines,
-> { Feature.enabled?(:pipeline_ci_sources_only, default_enabled: true) ? ci_sources : all },
class_name: 'Ci::Pipeline',
inverse_of: :project
has_many :stages, class_name: 'Ci::Stage', inverse_of: :project
 
# Ci::Build objects store data on the file system such as artifact files and
Loading
Loading
@@ -621,7 +631,7 @@ class Project < ActiveRecord::Base
 
# ref can't be HEAD, can only be branch/tag name or SHA
def latest_successful_builds_for(ref = default_branch)
latest_pipeline = pipelines.latest_successful_for(ref)
latest_pipeline = ci_pipelines.latest_successful_for(ref)
 
if latest_pipeline
latest_pipeline.builds.latest.with_artifacts_archive
Loading
Loading
@@ -1376,7 +1386,7 @@ class Project < ActiveRecord::Base
 
return unless sha
 
pipelines.order(id: :desc).find_by(sha: sha, ref: ref)
ci_pipelines.order(id: :desc).find_by(sha: sha, ref: ref)
end
 
def latest_successful_pipeline_for_default_branch
Loading
Loading
@@ -1385,12 +1395,12 @@ class Project < ActiveRecord::Base
end
 
@latest_successful_pipeline_for_default_branch =
pipelines.latest_successful_for(default_branch)
ci_pipelines.latest_successful_for(default_branch)
end
 
def latest_successful_pipeline_for(ref = nil)
if ref && ref != default_branch
pipelines.latest_successful_for(ref)
ci_pipelines.latest_successful_for(ref)
else
latest_successful_pipeline_for_default_branch
end
Loading
Loading
Loading
Loading
@@ -38,11 +38,11 @@ class PipelinesEmailService < Service
end
 
def can_test?
project.pipelines.any?
project.ci_pipelines.any?
end
 
def test_data(project, user)
data = Gitlab::DataBuilder::Pipeline.build(project.pipelines.last)
data = Gitlab::DataBuilder::Pipeline.build(project.ci_pipelines.last)
data[:user] = user.hook_attrs
data
end
Loading
Loading
Loading
Loading
@@ -78,7 +78,7 @@ module Ci
 
# rubocop: disable CodeReuse/ActiveRecord
def auto_cancelable_pipelines
project.pipelines
project.ci_pipelines
.where(ref: pipeline.ref)
.where.not(id: pipeline.id)
.where.not(sha: project.commit(pipeline.ref).try(:id))
Loading
Loading
Loading
Loading
@@ -34,7 +34,7 @@ module Projects
end
 
def auto_devops_pipelines
@auto_devops_pipelines ||= project.pipelines.auto_devops_source
@auto_devops_pipelines ||= project.ci_pipelines.auto_devops_source
end
end
end
Loading
Loading
Loading
Loading
@@ -49,7 +49,7 @@ module TestHooks
end
 
def pipeline_events_data
pipeline = project.pipelines.first
pipeline = project.ci_pipelines.first
throw(:validation_error, 'Ensure the project has CI pipelines.') unless pipeline.present?
 
Gitlab::DataBuilder::Pipeline.build(pipeline)
Loading
Loading
Loading
Loading
@@ -104,7 +104,7 @@ class Gitlab::Seeder::Pipelines
 
 
def create_pipeline!(project, ref, commit)
project.pipelines.create!(sha: commit.id, ref: ref, source: :push)
project.ci_pipelines.create!(sha: commit.id, ref: ref, source: :push)
end
 
def build_create!(pipeline, opts = {})
Loading
Loading
Loading
Loading
@@ -29,7 +29,7 @@ module API
 
not_found!('Commit') unless user_project.commit(params[:sha])
 
pipelines = user_project.pipelines.where(sha: params[:sha])
pipelines = user_project.ci_pipelines.where(sha: params[:sha])
statuses = ::CommitStatus.where(pipeline: pipelines)
statuses = statuses.latest unless to_boolean(params[:all])
statuses = statuses.where(ref: params[:ref]) if params[:ref].present?
Loading
Loading
@@ -75,7 +75,7 @@ module API
 
pipeline = @project.pipeline_for(ref, commit.sha)
unless pipeline
pipeline = @project.pipelines.create!(
pipeline = @project.ci_pipelines.create!(
source: :external,
sha: commit.sha,
ref: ref,
Loading
Loading
Loading
Loading
@@ -56,7 +56,7 @@ module API
end
# rubocop: disable CodeReuse/ActiveRecord
get ':id/pipelines/:pipeline_id/jobs' do
pipeline = user_project.pipelines.find(params[:pipeline_id])
pipeline = user_project.ci_pipelines.find(params[:pipeline_id])
builds = pipeline.builds
builds = filter_builds(builds, params[:scope])
builds = builds.preload(:job_artifacts_archive, :job_artifacts, project: [:namespace])
Loading
Loading
Loading
Loading
@@ -130,7 +130,7 @@ module API
 
helpers do
def pipeline
@pipeline ||= user_project.pipelines.find(params[:pipeline_id])
@pipeline ||= user_project.ci_pipelines.find(params[:pipeline_id])
end
end
end
Loading
Loading
Loading
Loading
@@ -14,7 +14,7 @@ module Gitlab
@ref = ref
@job = job
 
@pipeline = @project.pipelines.latest_successful_for(@ref)
@pipeline = @project.ci_pipelines.latest_successful_for(@ref)
end
 
def entity
Loading
Loading
Loading
Loading
@@ -22,7 +22,7 @@ module Gitlab
 
# rubocop: disable CodeReuse/ActiveRecord
def status
@project.pipelines
@project.ci_pipelines
.where(sha: @sha)
.latest_status(@ref) || 'unknown'
end
Loading
Loading
Loading
Loading
@@ -54,7 +54,7 @@ module Gitlab
 
# rubocop: disable CodeReuse/ActiveRecord
def collect
query = project.pipelines
query = project.all_pipelines
.where("? > #{::Ci::Pipeline.table_name}.created_at AND #{::Ci::Pipeline.table_name}.created_at > ?", @to, @from) # rubocop:disable GitlabSecurity/SqlInjection
 
totals_count = grouped_count(query)
Loading
Loading
@@ -115,7 +115,7 @@ module Gitlab
 
class PipelineTime < Chart
def collect
commits = project.pipelines.last(30)
commits = project.all_pipelines.last(30)
 
commits.each do |commit|
@labels << commit.short_sha
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment