diff options
author | Kamil Trzcinski <ayufan@ayufan.eu> | 2015-09-28 14:44:07 +0200 |
---|---|---|
committer | Kamil Trzcinski <ayufan@ayufan.eu> | 2015-09-29 10:47:03 +0200 |
commit | 2c1f7ccac8180a49e45fb3cf79e03318420d1037 (patch) | |
tree | eedcef2c050b56bb7e4f123b3b201d8993d81868 | |
parent | 6abca1284791475a8240e4b25b5e6e7175533101 (diff) | |
download | gitlab-ce-2c1f7ccac8180a49e45fb3cf79e03318420d1037.tar.gz |
Fix register_build_service tests
-rw-r--r-- | app/models/ci/runner.rb | 4 | ||||
-rw-r--r-- | app/services/ci/register_build_service.rb | 6 | ||||
-rw-r--r-- | spec/services/ci/register_build_service_spec.rb | 9 |
3 files changed, 11 insertions, 8 deletions
diff --git a/app/models/ci/runner.rb b/app/models/ci/runner.rb index 1e9f78a3748..6838ccfaaab 100644 --- a/app/models/ci/runner.rb +++ b/app/models/ci/runner.rb @@ -41,6 +41,10 @@ module Ci query: "%#{query.try(:downcase)}%") end + def gl_projects_ids + projects.select(:gitlab_id) + end + def set_default_values self.token = SecureRandom.hex(15) if self.token.blank? end diff --git a/app/services/ci/register_build_service.rb b/app/services/ci/register_build_service.rb index 33f1c1e918d..78cc51d31bb 100644 --- a/app/services/ci/register_build_service.rb +++ b/app/services/ci/register_build_service.rb @@ -8,10 +8,10 @@ module Ci builds = if current_runner.shared? # don't run projects which have not enables shared runners - builds.includes(:project).where(ci_projects: { shared_runners_enabled: true }) + builds.joins(commit: {gl_project: :gitlab_ci_project}).where(ci_projects: {shared_runners_enabled: true}) else # do run projects which are only assigned to this runner - builds.where(project_id: current_runner.projects) + builds.joins(:commit).where(ci_commits: {gl_project_id: current_runner.gl_projects_ids}) end builds = builds.order('created_at ASC') @@ -19,7 +19,7 @@ module Ci build = builds.find do |build| (build.tag_list - current_runner.tag_list).empty? end - + if build # In case when 2 runners try to assign the same build, second runner will be declined diff --git a/spec/services/ci/register_build_service_spec.rb b/spec/services/ci/register_build_service_spec.rb index 9057791ca43..ae4239be821 100644 --- a/spec/services/ci/register_build_service_spec.rb +++ b/spec/services/ci/register_build_service_spec.rb @@ -3,15 +3,15 @@ require 'spec_helper' module Ci describe RegisterBuildService do let!(:service) { RegisterBuildService.new } - let!(:project) { FactoryGirl.create :ci_project } - let!(:gl_project) { FactoryGirl.create :empty_project, gitlab_ci_project: project } + let!(:gl_project) { FactoryGirl.create :empty_project } let!(:commit) { FactoryGirl.create :ci_commit, gl_project: gl_project } let!(:pending_build) { FactoryGirl.create :ci_build, commit: commit } let!(:shared_runner) { FactoryGirl.create(:ci_runner, is_shared: true) } let!(:specific_runner) { FactoryGirl.create(:ci_runner, is_shared: false) } before do - specific_runner.assign_to(project) + gl_project.ensure_ci_project + specific_runner.assign_to(gl_project.gitlab_ci_project) end describe :execute do @@ -48,8 +48,7 @@ module Ci context 'allow shared runners' do before do - project.shared_runners_enabled = true - project.save + gl_project.gitlab_ci_project.update(shared_runners_enabled: true) end context 'shared runner' do |