summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/controllers/admin/runner_projects_controller.rb4
-rw-r--r--app/controllers/projects/builds_controller.rb6
-rw-r--r--app/controllers/projects/runner_projects_controller.rb2
-rw-r--r--app/controllers/projects/runners_controller.rb6
-rw-r--r--app/controllers/projects/triggers_controller.rb8
-rw-r--r--app/controllers/projects/variables_controller.rb2
-rw-r--r--app/helpers/ci_status_helper.rb2
-rw-r--r--app/models/ci/build.rb2
-rw-r--r--app/models/ci/runner.rb2
-rw-r--r--app/models/project.rb16
-rw-r--r--app/models/user.rb2
-rw-r--r--app/services/ci/create_commit_service.rb28
-rw-r--r--app/services/create_commit_builds_service.rb29
-rw-r--r--app/services/git_push_service.rb1
-rw-r--r--app/services/git_tag_push_service.rb1
-rw-r--r--app/views/admin/runners/show.html.haml2
-rw-r--r--app/views/layouts/nav/_project.html.haml2
-rw-r--r--app/views/projects/graphs/ci/_overall.haml8
-rw-r--r--app/views/projects/runners/_runner.html.haml4
-rw-r--r--app/views/projects/variables/show.html.haml4
-rw-r--r--lib/ci/api/runners.rb2
-rw-r--r--lib/ci/charts.rb4
-rw-r--r--spec/features/builds_spec.rb2
-rw-r--r--spec/features/runners_spec.rb10
-rw-r--r--spec/features/triggers_spec.rb6
-rw-r--r--spec/features/variables_spec.rb2
-rw-r--r--spec/models/build_spec.rb8
-rw-r--r--spec/models/ci/runner_spec.rb6
-rw-r--r--spec/models/project_spec.rb16
-rw-r--r--spec/requests/ci/api/builds_spec.rb4
-rw-r--r--spec/requests/ci/api/runners_spec.rb2
-rw-r--r--spec/services/ci/create_commit_service_spec.rb172
-rw-r--r--spec/services/create_commit_builds_service_spec.rb171
33 files changed, 269 insertions, 267 deletions
diff --git a/app/controllers/admin/runner_projects_controller.rb b/app/controllers/admin/runner_projects_controller.rb
index 20d621742f9..d25619d94e0 100644
--- a/app/controllers/admin/runner_projects_controller.rb
+++ b/app/controllers/admin/runner_projects_controller.rb
@@ -2,8 +2,8 @@ class Admin::RunnerProjectsController < Admin::ApplicationController
before_action :project, only: [:create]
def index
- @runner_projects = project.ci_runner_projects.all
- @runner_project = project.ci_runner_projects.new
+ @runner_projects = project.runner_projects.all
+ @runner_project = project.runner_projects.new
end
def create
diff --git a/app/controllers/projects/builds_controller.rb b/app/controllers/projects/builds_controller.rb
index e7e2ab43130..26ba12520c7 100644
--- a/app/controllers/projects/builds_controller.rb
+++ b/app/controllers/projects/builds_controller.rb
@@ -8,7 +8,7 @@ class Projects::BuildsController < Projects::ApplicationController
def index
@scope = params[:scope]
- @all_builds = project.ci_builds
+ @all_builds = project.builds
@builds = @all_builds.order('created_at DESC')
@builds =
case @scope
@@ -23,7 +23,7 @@ class Projects::BuildsController < Projects::ApplicationController
end
def cancel_all
- @project.ci_builds.running_or_pending.each(&:cancel)
+ @project.builds.running_or_pending.each(&:cancel)
redirect_to namespace_project_builds_path(project.namespace, project)
end
@@ -76,7 +76,7 @@ class Projects::BuildsController < Projects::ApplicationController
private
def build
- @build ||= project.ci_builds.unscoped.find_by!(id: params[:id])
+ @build ||= project.builds.unscoped.find_by!(id: params[:id])
end
def artifacts_file
diff --git a/app/controllers/projects/runner_projects_controller.rb b/app/controllers/projects/runner_projects_controller.rb
index 69863387354..e2785caa2fb 100644
--- a/app/controllers/projects/runner_projects_controller.rb
+++ b/app/controllers/projects/runner_projects_controller.rb
@@ -18,7 +18,7 @@ class Projects::RunnerProjectsController < Projects::ApplicationController
end
def destroy
- runner_project = project.ci_runner_projects.find(params[:id])
+ runner_project = project.runner_projects.find(params[:id])
runner_project.destroy
redirect_to runners_path(project)
diff --git a/app/controllers/projects/runners_controller.rb b/app/controllers/projects/runners_controller.rb
index 863c5d131ab..4993b2648a5 100644
--- a/app/controllers/projects/runners_controller.rb
+++ b/app/controllers/projects/runners_controller.rb
@@ -5,9 +5,9 @@ class Projects::RunnersController < Projects::ApplicationController
layout 'project_settings'
def index
- @runners = project.ci_runners.ordered
+ @runners = project.runners.ordered
@specific_runners = current_user.ci_authorized_runners.
- where.not(id: project.ci_runners).
+ where.not(id: project.runners).
ordered.page(params[:page]).per(20)
@shared_runners = Ci::Runner.shared.active
@shared_runners_count = @shared_runners.count(:all)
@@ -60,7 +60,7 @@ class Projects::RunnersController < Projects::ApplicationController
protected
def set_runner
- @runner ||= project.ci_runners.find(params[:id])
+ @runner ||= project.runners.find(params[:id])
end
def runner_params
diff --git a/app/controllers/projects/triggers_controller.rb b/app/controllers/projects/triggers_controller.rb
index 421e648a2dd..30adfad1daa 100644
--- a/app/controllers/projects/triggers_controller.rb
+++ b/app/controllers/projects/triggers_controller.rb
@@ -4,18 +4,18 @@ class Projects::TriggersController < Projects::ApplicationController
layout 'project_settings'
def index
- @triggers = project.ci_triggers
+ @triggers = project.triggers
@trigger = Ci::Trigger.new
end
def create
- @trigger = project.ci_triggers.new
+ @trigger = project.triggers.new
@trigger.save
if @trigger.valid?
redirect_to namespace_project_triggers_path(@project.namespace, @project)
else
- @triggers = project.ci_triggers.select(&:persisted?)
+ @triggers = project.triggers.select(&:persisted?)
render :index
end
end
@@ -29,6 +29,6 @@ class Projects::TriggersController < Projects::ApplicationController
private
def trigger
- @trigger ||= project.ci_triggers.find(params[:id])
+ @trigger ||= project.triggers.find(params[:id])
end
end
diff --git a/app/controllers/projects/variables_controller.rb b/app/controllers/projects/variables_controller.rb
index 1dab978f462..10efafea9db 100644
--- a/app/controllers/projects/variables_controller.rb
+++ b/app/controllers/projects/variables_controller.rb
@@ -17,6 +17,6 @@ class Projects::VariablesController < Projects::ApplicationController
private
def project_params
- params.require(:project).permit({ ci_variables_attributes: [:id, :key, :value, :_destroy] })
+ params.require(:project).permit({ variables_attributes: [:id, :key, :value, :_destroy] })
end
end
diff --git a/app/helpers/ci_status_helper.rb b/app/helpers/ci_status_helper.rb
index 7feeaa17306..02ae8177df8 100644
--- a/app/helpers/ci_status_helper.rb
+++ b/app/helpers/ci_status_helper.rb
@@ -65,7 +65,7 @@ module CiStatusHelper
end
def no_runners_for_project?(project)
- project.ci_runners.blank? &&
+ project.runners.blank? &&
Ci::Runner.shared.blank?
end
end
diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb
index fac1d1c4c2c..401e08115dc 100644
--- a/app/models/ci/build.rb
+++ b/app/models/ci/build.rb
@@ -287,7 +287,7 @@ module Ci
end
def project_variables
- project.ci_variables.map do |variable|
+ project.variables.map do |variable|
{ key: variable.key, value: variable.value, public: false }
end
end
diff --git a/app/models/ci/runner.rb b/app/models/ci/runner.rb
index aa445db7ebf..38b20cd7faa 100644
--- a/app/models/ci/runner.rb
+++ b/app/models/ci/runner.rb
@@ -52,7 +52,7 @@ module Ci
def assign_to(project, current_user = nil)
self.is_shared = false if shared?
self.save
- project.ci_runner_projects.create!(runner_id: self.id)
+ project.runner_projects.create!(runner_id: self.id)
end
def display_name
diff --git a/app/models/project.rb b/app/models/project.rb
index a11bc9c4bd5..ba04470c64e 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -128,15 +128,15 @@ class Project < ActiveRecord::Base
has_one :import_data, dependent: :destroy, class_name: "ProjectImportData"
+ has_many :commit_statuses, dependent: :destroy, class_name: 'CommitStatus', foreign_key: :gl_project_id
has_many :ci_commits, dependent: :destroy, class_name: 'Ci::Commit', foreign_key: :gl_project_id
- has_many :ci_statuses, dependent: :destroy, class_name: 'CommitStatus', foreign_key: :gl_project_id
- has_many :ci_builds, class_name: 'Ci::Build', foreign_key: :gl_project_id # the builds are created from the ci_statuses
- has_many :ci_runner_projects, dependent: :destroy, class_name: 'Ci::RunnerProject', foreign_key: :gl_project_id
- has_many :ci_runners, through: :ci_runner_projects, source: :runner, class_name: 'Ci::Runner'
- has_many :ci_variables, dependent: :destroy, class_name: 'Ci::Variable', foreign_key: :gl_project_id
- has_many :ci_triggers, dependent: :destroy, class_name: 'Ci::Trigger', foreign_key: :gl_project_id
+ has_many :builds, class_name: 'Ci::Build', foreign_key: :gl_project_id # the builds are created from the commit_statuses
+ has_many :runner_projects, dependent: :destroy, class_name: 'Ci::RunnerProject', foreign_key: :gl_project_id
+ has_many :runners, through: :runner_projects, source: :runner, class_name: 'Ci::Runner'
+ has_many :variables, dependent: :destroy, class_name: 'Ci::Variable', foreign_key: :gl_project_id
+ has_many :triggers, dependent: :destroy, class_name: 'Ci::Trigger', foreign_key: :gl_project_id
- accepts_nested_attributes_for :ci_variables, allow_destroy: true
+ accepts_nested_attributes_for :variables, allow_destroy: true
delegate :name, to: :owner, allow_nil: true, prefix: true
delegate :members, to: :team, prefix: true
@@ -822,7 +822,7 @@ class Project < ActiveRecord::Base
end
def any_runners?(&block)
- if ci_runners.active.any?(&block)
+ if runners.active.any?(&block)
return true
end
diff --git a/app/models/user.rb b/app/models/user.rb
index da06b6f3ade..87d46a49430 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -134,7 +134,7 @@ class User < ActiveRecord::Base
has_many :assigned_merge_requests, dependent: :destroy, foreign_key: :assignee_id, class_name: "MergeRequest"
has_many :oauth_applications, class_name: 'Doorkeeper::Application', as: :owner, dependent: :destroy
has_one :abuse_report, dependent: :destroy
- has_many :ci_builds, dependent: :nullify, class_name: 'Ci::Build'
+ has_many :builds, dependent: :nullify, class_name: 'Ci::Build'
#
diff --git a/app/services/ci/create_commit_service.rb b/app/services/ci/create_commit_service.rb
deleted file mode 100644
index 6401ce3619e..00000000000
--- a/app/services/ci/create_commit_service.rb
+++ /dev/null
@@ -1,28 +0,0 @@
-module Ci
- class CreateCommitService
- def execute(project, user, params)
- sha = params[:checkout_sha] || params[:after]
- origin_ref = params[:ref]
-
- unless origin_ref && sha.present?
- return false
- end
-
- ref = origin_ref.gsub(/\Arefs\/(tags|heads)\//, '')
-
- # Skip branch removal
- if sha == Ci::Git::BLANK_SHA
- return false
- end
-
- tag = origin_ref.start_with?('refs/tags/')
- commit = project.ensure_ci_commit(sha)
- unless commit.skip_ci?
- commit.update_committed!
- commit.create_builds(ref, tag, user)
- end
-
- commit
- end
- end
-end
diff --git a/app/services/create_commit_builds_service.rb b/app/services/create_commit_builds_service.rb
new file mode 100644
index 00000000000..886bd88d204
--- /dev/null
+++ b/app/services/create_commit_builds_service.rb
@@ -0,0 +1,29 @@
+class CreateCommitBuildsService
+ def execute(project, user, params)
+ return false unless project.builds_enabled?
+
+ sha = params[:checkout_sha] || params[:after]
+ origin_ref = params[:ref]
+
+ unless origin_ref && sha.present?
+ return false
+ end
+
+ ref = origin_ref.gsub(/\Arefs\/(tags|heads)\//, '')
+
+ # Skip branch removal
+ if sha == Ci::Git::BLANK_SHA
+ return false
+ end
+
+ tag = origin_ref.start_with?('refs/tags/')
+ commit = project.ensure_ci_commit(sha)
+ unless commit.skip_ci?
+ commit.update_committed!
+ commit.create_builds(ref, tag, user)
+ end
+
+ commit
+ end
+end
+
diff --git a/app/services/git_push_service.rb b/app/services/git_push_service.rb
index f11690aa3f4..d7ea30bc315 100644
--- a/app/services/git_push_service.rb
+++ b/app/services/git_push_service.rb
@@ -61,6 +61,7 @@ class GitPushService
EventCreateService.new.push(project, user, @push_data)
project.execute_hooks(@push_data.dup, :push_hooks)
project.execute_services(@push_data.dup, :push_hooks)
+ CreateCommitBuildsService.new.execute(project, @user, @push_data)
ProjectCacheWorker.perform_async(project.id)
end
diff --git a/app/services/git_tag_push_service.rb b/app/services/git_tag_push_service.rb
index 1cc42b0b0ad..4144c7111d0 100644
--- a/app/services/git_tag_push_service.rb
+++ b/app/services/git_tag_push_service.rb
@@ -10,6 +10,7 @@ class GitTagPushService
EventCreateService.new.push(project, user, @push_data)
project.execute_hooks(@push_data.dup, :tag_push_hooks)
project.execute_services(@push_data.dup, :tag_push_hooks)
+ CreateCommitBuildsService.new.execute(project, @user, @push_data)
ProjectCacheWorker.perform_async(project.id)
true
diff --git a/app/views/admin/runners/show.html.haml b/app/views/admin/runners/show.html.haml
index aeb484a7971..cd0cc2d1776 100644
--- a/app/views/admin/runners/show.html.haml
+++ b/app/views/admin/runners/show.html.haml
@@ -82,7 +82,7 @@
= project.name_with_namespace
%td
.pull-right
- = form_for [:admin, project.namespace, project, project.ci_runner_projects.new] do |f|
+ = form_for [:admin, project.namespace, project, project.runner_projects.new] do |f|
= f.hidden_field :runner_id, value: @runner.id
= f.submit 'Enable', class: 'btn btn-xs'
= paginate @projects
diff --git a/app/views/layouts/nav/_project.html.haml b/app/views/layouts/nav/_project.html.haml
index 2fcba7bd672..c0d62028639 100644
--- a/app/views/layouts/nav/_project.html.haml
+++ b/app/views/layouts/nav/_project.html.haml
@@ -44,7 +44,7 @@
= icon('cubes fw')
%span
Builds
- %span.count.builds_counter= @project.ci_builds.running_or_pending.count(:all)
+ %span.count.builds_counter= @project.builds.running_or_pending.count(:all)
- if project_nav_tab? :graphs
= nav_link(controller: %w(graphs)) do
diff --git a/app/views/projects/graphs/ci/_overall.haml b/app/views/projects/graphs/ci/_overall.haml
index 4105d683117..4b12e5f2da1 100644
--- a/app/views/projects/graphs/ci/_overall.haml
+++ b/app/views/projects/graphs/ci/_overall.haml
@@ -2,17 +2,17 @@
%ul
%li
Total:
- %strong= pluralize @project.ci_builds.count(:all), 'build'
+ %strong= pluralize @project.builds.count(:all), 'build'
%li
Successful:
- %strong= pluralize @project.ci_builds.success.count(:all), 'build'
+ %strong= pluralize @project.builds.success.count(:all), 'build'
%li
Failed:
- %strong= pluralize @project.ci_builds.failed.count(:all), 'build'
+ %strong= pluralize @project.builds.failed.count(:all), 'build'
%li
Success ratio:
%strong
- #{success_ratio(@project.ci_builds.success, @project.ci_builds.failed)}%
+ #{success_ratio(@project.builds.success, @project.builds.failed)}%
%li
Commits covered:
%strong
diff --git a/app/views/projects/runners/_runner.html.haml b/app/views/projects/runners/_runner.html.haml
index 1a61cb07b5f..4d95afc28bb 100644
--- a/app/views/projects/runners/_runner.html.haml
+++ b/app/views/projects/runners/_runner.html.haml
@@ -15,10 +15,10 @@
- if runner.belongs_to_one_project?
= link_to 'Remove runner', runner_path(runner), data: { confirm: "Are you sure?" }, method: :delete, class: 'btn btn-danger btn-sm'
- else
- - runner_project = @project.ci_runner_projects.find_by(runner_id: runner)
+ - runner_project = @project.runner_projects.find_by(runner_id: runner)
= link_to 'Disable for this project', namespace_project_runner_project_path(@project.namespace, @project, runner_project), data: { confirm: "Are you sure?" }, method: :delete, class: 'btn btn-danger btn-sm'
- elsif runner.specific?
- = form_for [@project.namespace, @project, @project.ci_runner_projects.new] do |f|
+ = form_for [@project.namespace, @project, @project.runner_projects.new] do |f|
= f.hidden_field :runner_id, value: runner.id
= f.submit 'Enable for this project', class: 'btn btn-sm'
.pull-right
diff --git a/app/views/projects/variables/show.html.haml b/app/views/projects/variables/show.html.haml
index e7bc866d6bc..e80dffc1ced 100644
--- a/app/views/projects/variables/show.html.haml
+++ b/app/views/projects/variables/show.html.haml
@@ -19,7 +19,7 @@
- @project.errors.full_messages.each do |msg|
%li= msg
- = f.fields_for :ci_variables do |variable_form|
+ = f.fields_for :variables do |variable_form|
.form-group
= variable_form.label :key, 'Key', class: 'control-label'
.col-sm-10
@@ -34,7 +34,7 @@
%hr
%p
.clearfix
- = f.link_to_add "Add a variable", :ci_variables, class: 'btn btn-success pull-right'
+ = f.link_to_add "Add a variable", :variables, class: 'btn btn-success pull-right'
.form-actions
= f.submit 'Save changes', class: 'btn btn-save', return_to: request.original_url
diff --git a/lib/ci/api/runners.rb b/lib/ci/api/runners.rb
index 1e738a73157..8704917b9e4 100644
--- a/lib/ci/api/runners.rb
+++ b/lib/ci/api/runners.rb
@@ -38,7 +38,7 @@ module Ci
)
elsif project = Project.find_by(runners_token: params[:token])
# Create a specific runner for project.
- project.ci_runners.create(
+ project.runners.create(
description: params[:description],
tag_list: params[:tag_list]
)
diff --git a/lib/ci/charts.rb b/lib/ci/charts.rb
index 912ccff5f98..d53bdcbd0f2 100644
--- a/lib/ci/charts.rb
+++ b/lib/ci/charts.rb
@@ -16,10 +16,10 @@ module Ci
def push(from, to, format)
@labels << from.strftime(format)
- @total << project.ci_builds.
+ @total << project.builds.
where("? > #{Ci::Build.table_name}.created_at AND #{Ci::Build.table_name}.created_at > ?", to, from).
count(:all)
- @success << project.ci_builds.
+ @success << project.builds.
where("? > #{Ci::Build.table_name}.created_at AND #{Ci::Build.table_name}.created_at > ?", to, from).
success.count(:all)
end
diff --git a/spec/features/builds_spec.rb b/spec/features/builds_spec.rb
index 61d81cb0c8e..f0031a0a247 100644
--- a/spec/features/builds_spec.rb
+++ b/spec/features/builds_spec.rb
@@ -37,7 +37,7 @@ describe "Builds" do
context "All builds" do
before do
- @project.ci_builds.running_or_pending.each(&:success)
+ @project.builds.running_or_pending.each(&:success)
visit namespace_project_builds_path(@project.namespace, @project, scope: :all)
end
diff --git a/spec/features/runners_spec.rb b/spec/features/runners_spec.rb
index a4562f2fae8..d97831aae14 100644
--- a/spec/features/runners_spec.rb
+++ b/spec/features/runners_spec.rb
@@ -21,9 +21,9 @@ describe "Runners" do
@specific_runner = FactoryGirl.create :ci_specific_runner
@specific_runner2 = FactoryGirl.create :ci_specific_runner
@specific_runner3 = FactoryGirl.create :ci_specific_runner
- @project.ci_runners << @specific_runner
- @project2.ci_runners << @specific_runner2
- @project3.ci_runners << @specific_runner3
+ @project.runners << @specific_runner
+ @project2.runners << @specific_runner2
+ @project3.runners << @specific_runner3
visit runners_path(@project)
end
@@ -48,7 +48,7 @@ describe "Runners" do
end
it "disables specific runner for project" do
- @project2.ci_runners << @specific_runner
+ @project2.runners << @specific_runner
visit runners_path(@project)
within ".activated-specific-runners" do
@@ -85,7 +85,7 @@ describe "Runners" do
@project = FactoryGirl.create :empty_project
@project.team << [user, :master]
@specific_runner = FactoryGirl.create :ci_specific_runner
- @project.ci_runners << @specific_runner
+ @project.runners << @specific_runner
end
it "shows runner information" do
diff --git a/spec/features/triggers_spec.rb b/spec/features/triggers_spec.rb
index b0705a45aee..3cbc8253ad6 100644
--- a/spec/features/triggers_spec.rb
+++ b/spec/features/triggers_spec.rb
@@ -13,16 +13,16 @@ describe 'Triggers' do
context 'create a trigger' do
before do
click_on 'Add Trigger'
- expect(@project.ci_triggers.count).to eq(1)
+ expect(@project.triggers.count).to eq(1)
end
it 'contains trigger token' do
- expect(page).to have_content(@project.ci_triggers.first.token)
+ expect(page).to have_content(@project.triggers.first.token)
end
it 'revokes the trigger' do
click_on 'Revoke'
- expect(@project.ci_triggers.count).to eq(0)
+ expect(@project.triggers.count).to eq(0)
end
end
end
diff --git a/spec/features/variables_spec.rb b/spec/features/variables_spec.rb
index a6e68eeefbc..afea1840cd7 100644
--- a/spec/features/variables_spec.rb
+++ b/spec/features/variables_spec.rb
@@ -18,7 +18,7 @@ describe "Variables" do
click_on "Save changes"
expect(page).to have_content("Variables were successfully updated.")
- expect(@project.ci_variables.count).to eq(1)
+ expect(@project.variables.count).to eq(1)
end
end
end
diff --git a/spec/models/build_spec.rb b/spec/models/build_spec.rb
index 70a63c05b22..91af694fc03 100644
--- a/spec/models/build_spec.rb
+++ b/spec/models/build_spec.rb
@@ -232,7 +232,7 @@ describe Ci::Build, models: true do
end
before do
- build.project.ci_variables << Ci::Variable.new(key: 'SECRET_KEY', value: 'secret_value')
+ build.project.variables << Ci::Variable.new(key: 'SECRET_KEY', value: 'secret_value')
end
it { is_expected.to eq(predefined_variables + yaml_variables + secure_variables) }
@@ -264,7 +264,7 @@ describe Ci::Build, models: true do
describe :can_be_served? do
let(:runner) { FactoryGirl.create :ci_specific_runner }
- before { build.project.ci_runners << runner }
+ before { build.project.runners << runner }
context 'runner without tags' do
it 'can handle builds without tags' do
@@ -307,7 +307,7 @@ describe Ci::Build, models: true do
let(:runner) { FactoryGirl.create :ci_specific_runner }
before do
- build.project.ci_runners << runner
+ build.project.runners << runner
runner.update_attributes(contacted_at: 1.second.ago)
end
@@ -344,7 +344,7 @@ describe Ci::Build, models: true do
let(:runner) { FactoryGirl.create :ci_specific_runner, contacted_at: 1.second.ago }
before do
- build.project.ci_runners << runner
+ build.project.runners << runner
runner.save
end
diff --git a/spec/models/ci/runner_spec.rb b/spec/models/ci/runner_spec.rb
index 33388f97826..232760dfeba 100644
--- a/spec/models/ci/runner_spec.rb
+++ b/spec/models/ci/runner_spec.rb
@@ -118,8 +118,8 @@ describe Ci::Runner, models: true do
runner = FactoryGirl.create(:ci_specific_runner)
project = FactoryGirl.create(:empty_project)
project1 = FactoryGirl.create(:empty_project)
- project.ci_runners << runner
- project1.ci_runners << runner
+ project.runners << runner
+ project1.runners << runner
expect(runner.belongs_to_one_project?).to be_falsey
end
@@ -127,7 +127,7 @@ describe Ci::Runner, models: true do
it "returns true" do
runner = FactoryGirl.create(:ci_specific_runner)
project = FactoryGirl.create(:empty_project)
- project.ci_runners << runner
+ project.runners << runner
expect(runner.belongs_to_one_project?).to be_truthy
end
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index 9c9266455cf..b962f66ba26 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -54,13 +54,13 @@ describe Project, models: true do
it { is_expected.to have_one(:slack_service).dependent(:destroy) }
it { is_expected.to have_one(:pushover_service).dependent(:destroy) }
it { is_expected.to have_one(:asana_service).dependent(:destroy) }
- it { is_expected.to have_many(:ci_commits) }
it { is_expected.to have_many(:commit_statuses) }
- it { is_expected.to have_many(:ci_builds) }
- it { is_expected.to have_many(:ci_runner_projects) }
- it { is_expected.to have_many(:ci_runners) }
- it { is_expected.to have_many(:ci_variables) }
- it { is_expected.to have_many(:ci_triggers) }
+ it { is_expected.to have_many(:ci_commits) }
+ it { is_expected.to have_many(:builds) }
+ it { is_expected.to have_many(:runner_projects) }
+ it { is_expected.to have_many(:runners) }
+ it { is_expected.to have_many(:variables) }
+ it { is_expected.to have_many(:triggers) }
end
describe 'modules' do
@@ -519,7 +519,7 @@ describe Project, models: true do
end
it 'there is a specific runner' do
- project.ci_runners << specific_runner
+ project.runners << specific_runner
expect(project.any_runners?).to be_truthy
end
@@ -529,7 +529,7 @@ describe Project, models: true do
end
it 'checks the presence of specific runner' do
- project.ci_runners << specific_runner
+ project.runners << specific_runner
expect(project.any_runners? { |runner| runner == specific_runner }).to be_truthy
end
end
diff --git a/spec/requests/ci/api/builds_spec.rb b/spec/requests/ci/api/builds_spec.rb
index 0aa9981ea8d..550d74d158a 100644
--- a/spec/requests/ci/api/builds_spec.rb
+++ b/spec/requests/ci/api/builds_spec.rb
@@ -68,7 +68,7 @@ describe Ci::API::API do
it "returns variables" do
commit = FactoryGirl.create(:ci_commit, project: project)
commit.create_builds('master', false, nil)
- project.ci_variables << Ci::Variable.new(key: "SECRET_KEY", value: "secret_value")
+ project.variables << Ci::Variable.new(key: "SECRET_KEY", value: "secret_value")
post ci_api("/builds/register"), token: runner.token, info: { platform: :darwin }
@@ -87,7 +87,7 @@ describe Ci::API::API do
trigger_request = FactoryGirl.create(:ci_trigger_request_with_variables, commit: commit, trigger: trigger)
commit.create_builds('master', false, nil, trigger_request)
- project.ci_variables << Ci::Variable.new(key: "SECRET_KEY", value: "secret_value")
+ project.variables << Ci::Variable.new(key: "SECRET_KEY", value: "secret_value")
post ci_api("/builds/register"), token: runner.token, info: { platform: :darwin }
diff --git a/spec/requests/ci/api/runners_spec.rb b/spec/requests/ci/api/runners_spec.rb
index ef2f759fdaa..944d910d055 100644
--- a/spec/requests/ci/api/runners_spec.rb
+++ b/spec/requests/ci/api/runners_spec.rb
@@ -34,7 +34,7 @@ describe Ci::API::API do
before { post ci_api("/runners/register"), token: project.token }
it { expect(response.status).to eq(201) }
- it { expect(project.ci_runners.size).to eq(1) }
+ it { expect(project.runners.size).to eq(1) }
end
it "should return 403 error if token is invalid" do
diff --git a/spec/services/ci/create_commit_service_spec.rb b/spec/services/ci/create_commit_service_spec.rb
deleted file mode 100644
index 7e2dcc503e5..00000000000
--- a/spec/services/ci/create_commit_service_spec.rb
+++ /dev/null
@@ -1,172 +0,0 @@
-require 'spec_helper'
-
-module Ci
- describe CreateCommitService, services: true do
- let(:service) { CreateCommitService.new }
- let(:project) { FactoryGirl.create(:empty_project) }
- let(:user) { nil }
-
- before do
- stub_ci_commit_to_return_yaml_file
- end
-
- describe :execute do
- context 'valid params' do
- let(:commit) do
- service.execute(project, user,
- ref: 'refs/heads/master',
- before: '00000000',
- after: '31das312',
- commits: [ { message: "Message" } ]
- )
- end
-
- it { expect(commit).to be_kind_of(Commit) }
- it { expect(commit).to be_valid }
- it { expect(commit).to be_persisted }
- it { expect(commit).to eq(project.ci_commits.last) }
- it { expect(commit.builds.first).to be_kind_of(Build) }
- end
-
- context "skip tag if there is no build for it" do
- it "creates commit if there is appropriate job" do
- result = service.execute(project, user,
- ref: 'refs/tags/0_1',
- before: '00000000',
- after: '31das312',
- commits: [ { message: "Message" } ]
- )
- expect(result).to be_persisted
- end
-
- it "creates commit if there is no appropriate job but deploy job has right ref setting" do
- config = YAML.dump({ deploy: { deploy: "ls", only: ["0_1"] } })
- stub_ci_commit_yaml_file(config)
-
- result = service.execute(project, user,
- ref: 'refs/heads/0_1',
- before: '00000000',
- after: '31das312',
- commits: [ { message: "Message" } ]
- )
- expect(result).to be_persisted
- end
- end
-
- it 'skips commits without .gitlab-ci.yml' do
- stub_ci_commit_yaml_file(nil)
- result = service.execute(project, user,
- ref: 'refs/heads/0_1',
- before: '00000000',
- after: '31das312',
- commits: [ { message: 'Message' } ]
- )
- expect(result).to be_persisted
- expect(result.builds.any?).to be_falsey
- expect(result.status).to eq('skipped')
- expect(result.yaml_errors).to be_nil
- end
-
- it 'skips commits if yaml is invalid' do
- message = 'message'
- allow_any_instance_of(Ci::Commit).to receive(:git_commit_message) { message }
- stub_ci_commit_yaml_file('invalid: file: file')
- commits = [{ message: message }]
- commit = service.execute(project, user,
- ref: 'refs/tags/0_1',
- before: '00000000',
- after: '31das312',
- commits: commits
- )
- expect(commit.builds.any?).to be false
- expect(commit.status).to eq('failed')
- expect(commit.yaml_errors).to_not be_nil
- end
-
- describe :ci_skip? do
- let(:message) { "some message[ci skip]" }
-
- before do
- allow_any_instance_of(Ci::Commit).to receive(:git_commit_message) { message }
- end
-
- it "skips builds creation if there is [ci skip] tag in commit message" do
- commits = [{ message: message }]
- commit = service.execute(project, user,
- ref: 'refs/tags/0_1',
- before: '00000000',
- after: '31das312',
- commits: commits
- )
- expect(commit.builds.any?).to be false
- expect(commit.status).to eq("skipped")
- end
-
- it "does not skips builds creation if there is no [ci skip] tag in commit message" do
- allow_any_instance_of(Ci::Commit).to receive(:git_commit_message) { "some message" }
-
- commits = [{ message: "some message" }]
- commit = service.execute(project, user,
- ref: 'refs/tags/0_1',
- before: '00000000',
- after: '31das312',
- commits: commits
- )
-
- expect(commit.builds.first.name).to eq("staging")
- end
-
- it "skips builds creation if there is [ci skip] tag in commit message and yaml is invalid" do
- stub_ci_commit_yaml_file('invalid: file: fiile')
- commits = [{ message: message }]
- commit = service.execute(project, user,
- ref: 'refs/tags/0_1',
- before: '00000000',
- after: '31das312',
- commits: commits
- )
- expect(commit.builds.any?).to be false
- expect(commit.status).to eq("skipped")
- expect(commit.yaml_errors).to be_nil
- end
- end
-
- it "skips build creation if there are already builds" do
- allow_any_instance_of(Ci::Commit).to receive(:ci_yaml_file) { gitlab_ci_yaml }
-
- commits = [{ message: "message" }]
- commit = service.execute(project, user,
- ref: 'refs/heads/master',
- before: '00000000',
- after: '31das312',
- commits: commits
- )
- expect(commit.builds.count(:all)).to eq(2)
-
- commit = service.execute(project, user,
- ref: 'refs/heads/master',
- before: '00000000',
- after: '31das312',
- commits: commits
- )
- expect(commit.builds.count(:all)).to eq(2)
- end
-
- it "creates commit with failed status if yaml is invalid" do
- stub_ci_commit_yaml_file('invalid: file')
-
- commits = [{ message: "some message" }]
-
- commit = service.execute(project, user,
- ref: 'refs/tags/0_1',
- before: '00000000',
- after: '31das312',
- commits: commits
- )
-
- expect(commit.status).to eq("failed")
- expect(commit.builds.any?).to be false
- end
- end
- end
-end
diff --git a/spec/services/create_commit_builds_service_spec.rb b/spec/services/create_commit_builds_service_spec.rb
new file mode 100644
index 00000000000..70e28f6c528
--- /dev/null
+++ b/spec/services/create_commit_builds_service_spec.rb
@@ -0,0 +1,171 @@
+require 'spec_helper'
+
+describe CreateCommitBuildsService, services: true do
+ let(:service) { CreateCommitBuildsService.new }
+ let(:project) { FactoryGirl.create(:empty_project) }
+ let(:user) { nil }
+
+ before do
+ stub_ci_commit_to_return_yaml_file
+ end
+
+ describe :execute do
+ context 'valid params' do
+ let(:commit) do
+ service.execute(project, user,
+ ref: 'refs/heads/master',
+ before: '00000000',
+ after: '31das312',
+ commits: [{ message: "Message" }]
+ )
+ end
+
+ it { expect(commit).to be_kind_of(Commit) }
+ it { expect(commit).to be_valid }
+ it { expect(commit).to be_persisted }
+ it { expect(commit).to eq(project.ci_commits.last) }
+ it { expect(commit.builds.first).to be_kind_of(Build) }
+ end
+
+ context "skip tag if there is no build for it" do
+ it "creates commit if there is appropriate job" do
+ result = service.execute(project, user,
+ ref: 'refs/tags/0_1',
+ before: '00000000',
+ after: '31das312',
+ commits: [{ message: "Message" }]
+ )
+ expect(result).to be_persisted
+ end
+
+ it "creates commit if there is no appropriate job but deploy job has right ref setting" do
+ config = YAML.dump({ deploy: { deploy: "ls", only: ["0_1"] } })
+ stub_ci_commit_yaml_file(config)
+
+ result = service.execute(project, user,
+ ref: 'refs/heads/0_1',
+ before: '00000000',
+ after: '31das312',
+ commits: [{ message: "Message" }]
+ )
+ expect(result).to be_persisted
+ end
+ end
+
+ it 'skips commits without .gitlab-ci.yml' do
+ stub_ci_commit_yaml_file(nil)
+ result = service.execute(project, user,
+ ref: 'refs/heads/0_1',
+ before: '00000000',
+ after: '31das312',
+ commits: [{ message: 'Message' }]
+ )
+ expect(result).to be_persisted
+ expect(result.builds.any?).to be_falsey
+ expect(result.status).to eq('skipped')
+ expect(result.yaml_errors).to be_nil
+ end
+
+ it 'skips commits if yaml is invalid' do
+ message = 'message'
+ allow_any_instance_of(Ci::Commit).to receive(:git_commit_message) { message }
+ stub_ci_commit_yaml_file('invalid: file: file')
+ commits = [{ message: message }]
+ commit = service.execute(project, user,
+ ref: 'refs/tags/0_1',
+ before: '00000000',
+ after: '31das312',
+ commits: commits
+ )
+ expect(commit.builds.any?).to be false
+ expect(commit.status).to eq('failed')
+ expect(commit.yaml_errors).to_not be_nil
+ end
+
+ describe :ci_skip? do
+ let(:message) { "some message[ci skip]" }
+
+ before do
+ allow_any_instance_of(Ci::Commit).to receive(:git_commit_message) { message }
+ end
+
+ it "skips builds creation if there is [ci skip] tag in commit message" do
+ commits = [{ message: message }]
+ commit = service.execute(project, user,
+ ref: 'refs/tags/0_1',
+ before: '00000000',
+ after: '31das312',
+ commits: commits
+ )
+ expect(commit.builds.any?).to be false
+ expect(commit.status).to eq("skipped")
+ end
+
+ it "does not skips builds creation if there is no [ci skip] tag in commit message" do
+ allow_any_instance_of(Ci::Commit).to receive(:git_commit_message) { "some message" }
+
+ commits = [{ message: "some message" }]
+ commit = service.execute(project, user,
+ ref: 'refs/tags/0_1',
+ before: '00000000',
+ after: '31das312',
+ commits: commits
+ )
+
+ expect(commit.builds.first.name).to eq("staging")
+ end
+
+ it "skips builds creation if there is [ci skip] tag in commit message and yaml is invalid" do
+ stub_ci_commit_yaml_file('invalid: file: fiile')
+ commits = [{ message: message }]
+ commit = service.execute(project, user,
+ ref: 'refs/tags/0_1',
+ before: '00000000',
+ after: '31das312',
+ commits: commits
+ )
+ expect(commit.builds.any?).to be false
+ expect(commit.status).to eq("skipped")
+ expect(commit.yaml_errors).to be_nil
+ end
+ end
+
+ it "skips build creation if there are already builds" do
+ allow_any_instance_of(Ci::Commit).to receive(:ci_yaml_file) { gitlab_ci_yaml }
+
+ commits = [{ message: "message" }]
+ commit = service.execute(project, user,
+ ref: 'refs/heads/master',
+ before: '00000000',
+ after: '31das312',
+ commits: commits
+ )
+ expect(commit.builds.count(:all)).to eq(2)
+
+ commit = service.execute(project, user,
+ ref: 'refs/heads/master',
+ before: '00000000',
+ after: '31das312',
+ commits: commits
+ )
+ expect(commit.builds.count(:all)).to eq(2)
+ end
+
+ it "creates commit with failed status if yaml is invalid" do
+ stub_ci_commit_yaml_file('invalid: file')
+
+ commits = [{ message: "some message" }]
+
+ commit = service.execute(project, user,
+ ref: 'refs/tags/0_1',
+ before: '00000000',
+ after: '31das312',
+ commits: commits
+ )
+
+ expect(commit.status).to eq("failed")
+ expect(commit.builds.any?).to be false
+ end
+ end
+end
+