summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValery Sizov <vsv2711@gmail.com>2015-07-03 11:52:38 +0300
committerValery Sizov <vsv2711@gmail.com>2015-07-03 11:57:08 +0300
commit2f23b59a875d75734f824c8f30a8986b701cf552 (patch)
treeab1b52117c236c487514c748a1c04f646ec90d65
parent578a0be5627985d8fe4859b9d52e03b48d1bf158 (diff)
downloadgitlab-ci-7-12-stable_revert.tar.gz
Revert "Build registering fix"7-12-stable_revert
This reverts commit 891a003c7f85bd99a4401a1abce5d9cb2cd98891.
-rw-r--r--CHANGELOG1
-rw-r--r--app/services/register_build_service.rb12
-rw-r--r--spec/requests/api/builds_spec.rb2
-rw-r--r--spec/services/register_build_service_spec.rb31
4 files changed, 9 insertions, 37 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 6d815fb..2d84112 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,4 @@
v7.12.1
- - Runner without tag should pick builds without tag only
- Explicit error in the GitLab when commit not found.
- Fix: lint with relative subpath
- Update webhook example
diff --git a/app/services/register_build_service.rb b/app/services/register_build_service.rb
index b15e762..e0f1659 100644
--- a/app/services/register_build_service.rb
+++ b/app/services/register_build_service.rb
@@ -15,10 +15,14 @@ class RegisterBuildService
builds = builds.order('created_at ASC')
- build = builds.find do |build|
- (build.tag_list - current_runner.tag_list).empty?
- end
-
+ build =
+ if current_runner.tag_list.present?
+ builds.find do |build|
+ (build.tag_list - current_runner.tag_list).empty?
+ end
+ else
+ builds.first
+ end
if build
# In case when 2 runners try to assign the same build, second runner will be declined
diff --git a/spec/requests/api/builds_spec.rb b/spec/requests/api/builds_spec.rb
index 64d00bf..1fece31 100644
--- a/spec/requests/api/builds_spec.rb
+++ b/spec/requests/api/builds_spec.rb
@@ -3,7 +3,7 @@ require 'spec_helper'
describe API::API do
include ApiHelpers
- let(:runner) { FactoryGirl.create(:runner, tag_list: ["mysql", "ruby"]) }
+ let(:runner) { FactoryGirl.create(:runner) }
let(:project) { FactoryGirl.create(:project) }
describe "Builds API for runners" do
diff --git a/spec/services/register_build_service_spec.rb b/spec/services/register_build_service_spec.rb
index b5af777..1407346 100644
--- a/spec/services/register_build_service_spec.rb
+++ b/spec/services/register_build_service_spec.rb
@@ -13,37 +13,6 @@ describe RegisterBuildService do
end
describe :execute do
- context 'runner follow tag list' do
- it "picks build with the same tag" do
- pending_build.tag_list = ["linux"]
- pending_build.save
- specific_runner.tag_list = ["linux"]
- service.execute(specific_runner).should == pending_build
- end
-
- it "does not pick build with different tag" do
- pending_build.tag_list = ["linux"]
- pending_build.save
- specific_runner.tag_list = ["win32"]
- service.execute(specific_runner).should be_false
- end
-
- it "picks build without tag" do
- service.execute(specific_runner).should == pending_build
- end
-
- it "does not pick build with tag" do
- pending_build.tag_list = ["linux"]
- pending_build.save
- service.execute(specific_runner).should be_false
- end
-
- it "pick build without tag" do
- specific_runner.tag_list = ["win32"]
- service.execute(specific_runner).should == pending_build
- end
- end
-
context 'allow shared runners' do
before do
project.shared_runners_enabled = true