summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-05-06 09:17:27 +0200
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-05-19 22:01:53 +0200
commit8001eed06e5871f1cb108ceb70213c8b3f9192d2 (patch)
tree4c9aeb9857ccc41fc333deaad2d0783a44ee9dc9
parent8252333183dcff74fd229ca81e7317641ad30791 (diff)
downloadgitlab-ce-8001eed06e5871f1cb108ceb70213c8b3f9192d2.tar.gz
Add method that check if build has tags
-rw-r--r--app/models/ci/build.rb8
-rw-r--r--spec/models/build_spec.rb12
2 files changed, 17 insertions, 3 deletions
diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb
index 77a2dec4f72..6c9ce0dc481 100644
--- a/app/models/ci/build.rb
+++ b/app/models/ci/build.rb
@@ -290,13 +290,15 @@ module Ci
end
def can_be_served?(runner)
- if tag_list.empty? && !runner.run_untagged?
- return false
- end
+ return false unless has_tags? || runner.run_untagged?
(tag_list - runner.tag_list).empty?
end
+ def has_tags?
+ tag_list.any?
+ end
+
def any_runners_online?
project.any_runners? { |runner| runner.active? && runner.online? && can_be_served?(runner) }
end
diff --git a/spec/models/build_spec.rb b/spec/models/build_spec.rb
index 5da54e07de8..abae3271a5c 100644
--- a/spec/models/build_spec.rb
+++ b/spec/models/build_spec.rb
@@ -309,6 +309,18 @@ describe Ci::Build, models: true do
end
end
+ describe '#has_tags?' do
+ context 'when build has tags' do
+ subject { create(:ci_build, tag_list: ['tag']) }
+ it { is_expected.to have_tags }
+ end
+
+ context 'when build does not have tags' do
+ subject { create(:ci_build, tag_list: []) }
+ it { is_expected.to_not have_tags }
+ end
+ end
+
describe '#any_runners_online?' do
subject { build.any_runners_online? }