summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexis Reigel <alexis.reigel.ext@siemens.com>2017-10-04 13:55:34 +0200
committerAlexis Reigel <alexis.reigel.ext@siemens.com>2018-02-28 09:50:48 +0100
commit244654fd82b0b8f97446f7c70b9986da1ed91209 (patch)
treef0f451204c21ba3264a5e230f35aecbb9ce9ff83
parentcbb60bf9567e74b63afc7763da3e31eee1786b56 (diff)
downloadgitlab-ce-244654fd82b0b8f97446f7c70b9986da1ed91209.tar.gz
add method CI::Runner.project?
-rw-r--r--app/models/ci/runner.rb4
-rw-r--r--spec/models/ci/runner_spec.rb26
2 files changed, 27 insertions, 3 deletions
diff --git a/app/models/ci/runner.rb b/app/models/ci/runner.rb
index e56a8d15b9a..bad601c9121 100644
--- a/app/models/ci/runner.rb
+++ b/app/models/ci/runner.rb
@@ -139,6 +139,10 @@ module Ci
runner_groups.present?
end
+ def project?
+ runner_projects.present?
+ end
+
def can_pick?(build)
return false if self.ref_protected? && !build.protected?
diff --git a/spec/models/ci/runner_spec.rb b/spec/models/ci/runner_spec.rb
index d599bc30666..78b5db026be 100644
--- a/spec/models/ci/runner_spec.rb
+++ b/spec/models/ci/runner_spec.rb
@@ -660,9 +660,7 @@ describe Ci::Runner do
describe 'group?' do
it 'returns false when the runner is a project runner' do
project = create :project
- runner = create(:ci_runner, description: 'Project runner').tap do |r|
- create :ci_runner_project, runner: r, project: project
- end
+ runner = create :ci_runner, description: 'Project runner', projects: [project]
expect(runner.group?).to be false
end
@@ -680,4 +678,26 @@ describe Ci::Runner do
expect(runner.group?).to be true
end
end
+
+ describe 'project?' do
+ it 'returns false when the runner is a group prunner' do
+ group = create :group
+ runner = create :ci_runner, description: 'Group runner', groups: [group]
+
+ expect(runner.project?).to be false
+ end
+
+ it 'returns false when the runner is a shared runner' do
+ runner = create :ci_runner, :shared, description: 'Shared runner'
+
+ expect(runner.project?).to be false
+ end
+
+ it 'returns true when the runner is assigned to a project' do
+ project = create :project
+ runner = create :ci_runner, description: 'Group runner', projects: [project]
+
+ expect(runner.project?).to be true
+ end
+ end
end