Follow-up from "Shared CI runners for groups"

The following discussions from !9646 (merged) should be addressed:

  • @ayufan started a discussion: (+1 comment)

    This seems very strange that we test and allow shared runner with groups and projects. This should be forbidden by the validation as invalid usage, as this has no direct meaning from the logic about queueing.

  • @ayufan started a discussion: (+1 comment)

    Why this is needed?

Additionally we have

  • We should add not null constraint to runner_type
  • Ensure no more use of is_shared
  • runner_type validations should be expanded:
validates :no_projects, unless :project_type
validates :no_groups, unless :group_type
commit 1c2952c3adbe918e726fd6a66227a4db4150c2ee
Author: Dylan Griffith <dyl.griffith@gmail.com>
Date:   Fri May 4 11:44:22 2018 +0200

    Add missing parens for create in spec/models/project_spec.rb

diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index 08e42b61910..c7e3e3f213c 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -1140,9 +1140,9 @@ describe Project do
 
   describe '#any_runners?' do
     context 'shared runners' do
-      let(:project) { create :project, shared_runners_enabled: shared_runners_enabled }
-      let(:specific_runner) { create :ci_runner }
-      let(:shared_runner) { create :ci_runner, :shared }
+      let(:project) { create(:project, shared_runners_enabled: shared_runners_enabled) }
+      let(:specific_runner) { create(:ci_runner) }
+      let(:shared_runner) { create(:ci_runner, :shared) }
 
       context 'for shared runners disabled' do
         let(:shared_runners_enabled) { false }
@@ -1200,9 +1200,9 @@ describe Project do
     end
 
     context 'group runners' do
-      let(:project) { create :project, group_runners_enabled: group_runners_enabled }
-      let(:group) { create :group, projects: [project] }
-      let(:group_runner) { create :ci_runner, groups: [group] }
+      let(:project) { create(:project, group_runners_enabled: group_runners_enabled) }
+      let(:group) { create(:group, projects: [project]) }
+      let(:group_runner) { create(:ci_runner, groups: [group]) }
 
       context 'for group runners disabled' do
         let(:group_runners_enabled) { false }
  • Remove factory traits :shared and :specific
Edited by Dylan Griffith