Rename stage index column name to priority column
This commit is contained in:
parent
d7e8bfac48
commit
c9dc51111d
|
@ -17,7 +17,7 @@ module Ci
|
|||
validates :project, presence: true
|
||||
validates :pipeline, presence: true
|
||||
validates :name, presence: true
|
||||
validates :index, presence: true
|
||||
validates :priority, presence: true
|
||||
end
|
||||
|
||||
after_initialize do
|
||||
|
@ -25,9 +25,9 @@ module Ci
|
|||
end
|
||||
|
||||
before_validation unless: :importing? do
|
||||
next if index.present?
|
||||
next if priority.present?
|
||||
|
||||
self.index = statuses.select(:stage_idx)
|
||||
self.priority = statuses.select(:stage_idx)
|
||||
.where('stage_idx IS NOT NULL')
|
||||
.group(:stage_idx)
|
||||
.order('COUNT(*) DESC')
|
||||
|
|
|
@ -42,7 +42,7 @@ module Ci
|
|||
|
||||
def create_stage
|
||||
Ci::Stage.create!(name: @build.stage,
|
||||
index: @build.stage_idx,
|
||||
priority: @build.stage_idx,
|
||||
pipeline: @build.pipeline,
|
||||
project: @build.project)
|
||||
end
|
||||
|
|
|
@ -4,6 +4,6 @@ class AddIndexToCiStage < ActiveRecord::Migration
|
|||
DOWNTIME = false
|
||||
|
||||
def change
|
||||
add_column :ci_stages, :index, :integer
|
||||
add_column :ci_stages, :priority, :integer
|
||||
end
|
||||
end
|
||||
|
|
|
@ -486,7 +486,7 @@ ActiveRecord::Schema.define(version: 20180420080616) do
|
|||
t.string "name"
|
||||
t.integer "status"
|
||||
t.integer "lock_version"
|
||||
t.integer "index"
|
||||
t.integer "priority"
|
||||
end
|
||||
|
||||
add_index "ci_stages", ["pipeline_id", "name"], name: "index_ci_stages_on_pipeline_id_and_name", unique: true, using: :btree
|
||||
|
|
|
@ -26,19 +26,19 @@ module Gitlab
|
|||
FROM freqs
|
||||
)
|
||||
|
||||
UPDATE ci_stages SET index = indexes.index
|
||||
UPDATE ci_stages SET priority = indexes.index
|
||||
FROM indexes WHERE indexes.stage_id = ci_stages.id
|
||||
AND ci_stages.index IS NULL;
|
||||
AND ci_stages.priority IS NULL;
|
||||
SQL
|
||||
else
|
||||
<<~SQL
|
||||
UPDATE ci_stages
|
||||
SET index =
|
||||
SET priority =
|
||||
(SELECT stage_idx FROM ci_builds
|
||||
WHERE ci_builds.stage_id = ci_stages.id
|
||||
GROUP BY ci_builds.stage_idx ORDER BY COUNT(*) DESC LIMIT 1)
|
||||
WHERE ci_stages.id BETWEEN #{start_id} AND #{stop_id}
|
||||
AND ci_stages.index IS NULL
|
||||
AND ci_stages.priority IS NULL
|
||||
SQL
|
||||
end
|
||||
end
|
||||
|
|
|
@ -19,7 +19,7 @@ module Gitlab
|
|||
|
||||
def attributes
|
||||
{ name: @attributes.fetch(:name),
|
||||
index: @attributes.fetch(:index),
|
||||
priority: @attributes.fetch(:index),
|
||||
pipeline: @pipeline,
|
||||
project: @pipeline.project }
|
||||
end
|
||||
|
|
|
@ -21,7 +21,7 @@ FactoryBot.define do
|
|||
pipeline factory: :ci_empty_pipeline
|
||||
|
||||
name 'test'
|
||||
index 1
|
||||
priority 1
|
||||
status 'pending'
|
||||
end
|
||||
end
|
||||
|
|
|
@ -26,10 +26,10 @@ describe Gitlab::BackgroundMigration::MigrateStageIndex, :migration, schema: 201
|
|||
end
|
||||
|
||||
it 'correctly migrates stages indices' do
|
||||
expect(stages.all.pluck(:index)).to all(be_nil)
|
||||
expect(stages.all.pluck(:priority)).to all(be_nil)
|
||||
|
||||
described_class.new.perform(100, 101)
|
||||
|
||||
expect(stages.all.pluck(:index)).to eq [2, 3]
|
||||
expect(stages.all.pluck(:priority)).to eq [2, 3]
|
||||
end
|
||||
end
|
||||
|
|
|
@ -17,7 +17,7 @@ describe Gitlab::Ci::Pipeline::Chain::Create do
|
|||
|
||||
context 'when pipeline is ready to be saved' do
|
||||
before do
|
||||
pipeline.stages.build(name: 'test', index: 0, project: project)
|
||||
pipeline.stages.build(name: 'test', priority: 0, project: project)
|
||||
|
||||
step.perform!
|
||||
end
|
||||
|
|
|
@ -25,7 +25,7 @@ describe Gitlab::Ci::Pipeline::Seed::Stage do
|
|||
it 'returns hash attributes of a stage' do
|
||||
expect(subject.attributes).to be_a Hash
|
||||
expect(subject.attributes)
|
||||
.to include(:name, :index, :pipeline, :project)
|
||||
.to include(:name, :priority, :pipeline, :project)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -231,8 +231,8 @@ Ci::Pipeline:
|
|||
Ci::Stage:
|
||||
- id
|
||||
- name
|
||||
- index
|
||||
- status
|
||||
- priority
|
||||
- lock_version
|
||||
- project_id
|
||||
- pipeline_id
|
||||
|
|
|
@ -21,7 +21,7 @@ describe ScheduleStagesIndexMigration, :sidekiq, :migration do
|
|||
it 'schedules delayed background migrations in batches' do
|
||||
Sidekiq::Testing.fake! do
|
||||
Timecop.freeze do
|
||||
expect(stages.all).to all(have_attributes(index: be_nil))
|
||||
expect(stages.all).to all(have_attributes(priority: be_nil))
|
||||
|
||||
migrate!
|
||||
|
||||
|
|
|
@ -89,9 +89,9 @@ describe Ci::Stage, :models do
|
|||
end
|
||||
|
||||
describe '#index' do
|
||||
context 'when stage has been imported and does not have index set' do
|
||||
context 'when stage has been imported and does not have priority index set' do
|
||||
before do
|
||||
stage.update_column(:index, nil)
|
||||
stage.update_column(:priority, nil)
|
||||
end
|
||||
|
||||
context 'when stage has statuses' do
|
||||
|
@ -100,21 +100,21 @@ describe Ci::Stage, :models do
|
|||
end
|
||||
|
||||
it 'recalculates index before updating status' do
|
||||
expect(stage.reload.index).to be_nil
|
||||
expect(stage.reload.priority).to be_nil
|
||||
|
||||
stage.update_status
|
||||
|
||||
expect(stage.reload.index).to eq 10
|
||||
expect(stage.reload.priority).to eq 10
|
||||
end
|
||||
end
|
||||
|
||||
context 'when stage does not have statuses' do
|
||||
it 'fallbacks to zero' do
|
||||
expect(stage.reload.index).to be_nil
|
||||
expect(stage.reload.priority).to be_nil
|
||||
|
||||
stage.update_status
|
||||
|
||||
expect(stage.reload.index).to eq 0
|
||||
expect(stage.reload.priority).to eq 0
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue