diff options
author | Dylan Griffith <dyl.griffith@gmail.com> | 2018-04-30 09:39:47 +0400 |
---|---|---|
committer | Dylan Griffith <dyl.griffith@gmail.com> | 2018-04-30 10:02:25 +0400 |
commit | 87740df2ba7153439c30544f299b235632717738 (patch) | |
tree | 66c40d2cf0e4289991ee8f3a9d038ac400f29da9 /spec/services | |
parent | 0077679ae88793b200bdcf69d2ca7e4d15e6f7fa (diff) | |
download | gitlab-ce-87740df2ba7153439c30544f299b235632717738.tar.gz |
Revert fair scheduling for all builds
Per discussion in https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9646#note_65730532 this logic is being optimized elsewhere and it will simplify things if we make less changes to this code right now.
Diffstat (limited to 'spec/services')
-rw-r--r-- | spec/services/ci/register_job_service_spec.rb | 51 |
1 files changed, 10 insertions, 41 deletions
diff --git a/spec/services/ci/register_job_service_spec.rb b/spec/services/ci/register_job_service_spec.rb index 0c343425392..7d3c43eeaf7 100644 --- a/spec/services/ci/register_job_service_spec.rb +++ b/spec/services/ci/register_job_service_spec.rb @@ -195,56 +195,25 @@ module Ci let!(:unrelated_group_runner) { create :ci_runner, groups: [unrelated_group] } it 'does not consider builds from other group runners' do - expect(described_class.new(group_runner).send(:builds_for_runner).count).to eq 6 + expect(described_class.new(group_runner).send(:builds_for_group_runner).count).to eq 6 execute(group_runner) - expect(described_class.new(group_runner).send(:builds_for_runner).count).to eq 5 + expect(described_class.new(group_runner).send(:builds_for_group_runner).count).to eq 5 execute(group_runner) - expect(described_class.new(group_runner).send(:builds_for_runner).count).to eq 4 + expect(described_class.new(group_runner).send(:builds_for_group_runner).count).to eq 4 execute(group_runner) - expect(described_class.new(group_runner).send(:builds_for_runner).count).to eq 3 + expect(described_class.new(group_runner).send(:builds_for_group_runner).count).to eq 3 execute(group_runner) - expect(described_class.new(group_runner).send(:builds_for_runner).count).to eq 2 + expect(described_class.new(group_runner).send(:builds_for_group_runner).count).to eq 2 execute(group_runner) - expect(described_class.new(group_runner).send(:builds_for_runner).count).to eq 1 + expect(described_class.new(group_runner).send(:builds_for_group_runner).count).to eq 1 execute(group_runner) - expect(described_class.new(group_runner).send(:builds_for_runner).count).to eq 0 - expect(execute(group_runner)).to be_nil - end - - it 'prefers projects without builds first' do - # it gets for one build from each of the projects - expect(execute(group_runner)).to eq(build1_project1) - expect(execute(group_runner)).to eq(build1_project2) - expect(execute(group_runner)).to eq(build1_project3) - - # then it gets a second build from each of the projects - expect(execute(group_runner)).to eq(build2_project1) - expect(execute(group_runner)).to eq(build2_project2) - - # in the end the third build - expect(execute(group_runner)).to eq(build3_project1) - - expect(execute(group_runner)).to be_nil - end - - it 'equalises number of running builds' do - # after finishing the first build for project 1, get a second build from the same project - expect(execute(group_runner)).to eq(build1_project1) - build1_project1.reload.success - expect(execute(group_runner)).to eq(build2_project1) - - expect(execute(group_runner)).to eq(build1_project2) - build1_project2.reload.success - expect(execute(group_runner)).to eq(build2_project2) - expect(execute(group_runner)).to eq(build1_project3) - expect(execute(group_runner)).to eq(build3_project1) - + expect(described_class.new(group_runner).send(:builds_for_group_runner).count).to eq 0 expect(execute(group_runner)).to be_nil end end @@ -282,7 +251,7 @@ module Ci let!(:other_build) { create :ci_build, pipeline: pipeline } before do - allow_any_instance_of(Ci::RegisterJobService).to receive(:builds_for_runner) + allow_any_instance_of(Ci::RegisterJobService).to receive(:builds_for_project_runner) .and_return(Ci::Build.where(id: [pending_job, other_build])) end @@ -294,7 +263,7 @@ module Ci context 'when single build is in queue' do before do - allow_any_instance_of(Ci::RegisterJobService).to receive(:builds_for_runner) + allow_any_instance_of(Ci::RegisterJobService).to receive(:builds_for_project_runner) .and_return(Ci::Build.where(id: pending_job)) end @@ -305,7 +274,7 @@ module Ci context 'when there is no build in queue' do before do - allow_any_instance_of(Ci::RegisterJobService).to receive(:builds_for_runner) + allow_any_instance_of(Ci::RegisterJobService).to receive(:builds_for_project_runner) .and_return(Ci::Build.none) end |