diff --git a/app/controllers/ci/admin/runners_controller.rb b/app/controllers/ci/admin/runners_controller.rb index 4f5f3776ddc49e4d7870ab1a1e34f1a958dbfc18..2aabe21ed6635ba5942b3f2d34691f07d378256f 100644 --- a/app/controllers/ci/admin/runners_controller.rb +++ b/app/controllers/ci/admin/runners_controller.rb @@ -1,6 +1,6 @@ module Ci class Admin::RunnersController < Ci::Admin::ApplicationController - before_filter :runner, except: :index + before_action :runner, except: :index def index @runners = Ci::Runner.order('id DESC') diff --git a/app/controllers/ci/builds_controller.rb b/app/controllers/ci/builds_controller.rb index 9338b37e678668a4f49fffff249332443ee7ec4c..fbfb02af4fba207ad290c32da98dd795afd92a61 100644 --- a/app/controllers/ci/builds_controller.rb +++ b/app/controllers/ci/builds_controller.rb @@ -1,12 +1,12 @@ module Ci class BuildsController < Ci::ApplicationController - before_filter :authenticate_user!, except: [:status, :show] - before_filter :authenticate_public_page!, only: :show - before_filter :project - before_filter :authorize_access_project!, except: [:status, :show] - before_filter :authorize_manage_project!, except: [:status, :show, :retry, :cancel] - before_filter :authorize_manage_builds!, only: [:retry, :cancel] - before_filter :build, except: [:show] + before_action :authenticate_user!, except: [:status, :show] + before_action :authenticate_public_page!, only: :show + before_action :project + before_action :authorize_access_project!, except: [:status, :show] + before_action :authorize_manage_project!, except: [:status, :show, :retry, :cancel] + before_action :authorize_manage_builds!, only: [:retry, :cancel] + before_action :build, except: [:show] layout 'ci/project' def show diff --git a/app/controllers/ci/charts_controller.rb b/app/controllers/ci/charts_controller.rb index 63326ef36ccfefb19a50ea3ecb5238834c870a03..aa875e70987aaf61636ab15cc7c48562252082f7 100644 --- a/app/controllers/ci/charts_controller.rb +++ b/app/controllers/ci/charts_controller.rb @@ -1,9 +1,9 @@ module Ci class ChartsController < Ci::ApplicationController - before_filter :authenticate_user! - before_filter :project - before_filter :authorize_access_project! - before_filter :authorize_manage_project! + before_action :authenticate_user! + before_action :project + before_action :authorize_access_project! + before_action :authorize_manage_project! layout 'ci/project' diff --git a/app/controllers/ci/commits_controller.rb b/app/controllers/ci/commits_controller.rb index f0c0ff1bc11ea98afa82ea0b7c982899bc03c2d2..e41f3487de443afa539166caa2fffe09f8de8421 100644 --- a/app/controllers/ci/commits_controller.rb +++ b/app/controllers/ci/commits_controller.rb @@ -1,11 +1,11 @@ module Ci class CommitsController < Ci::ApplicationController - before_filter :authenticate_user!, except: [:status, :show] - before_filter :authenticate_public_page!, only: :show - before_filter :project - before_filter :authorize_access_project!, except: [:status, :show, :cancel] - before_filter :authorize_manage_builds!, only: [:cancel] - before_filter :commit, only: :show + before_action :authenticate_user!, except: [:status, :show] + before_action :authenticate_public_page!, only: :show + before_action :project + before_action :authorize_access_project!, except: [:status, :show, :cancel] + before_action :authorize_manage_builds!, only: [:cancel] + before_action :commit, only: :show layout 'ci/project' def show diff --git a/app/controllers/ci/events_controller.rb b/app/controllers/ci/events_controller.rb index c515caabe637ac2390f6e362f9147dbc251c78af..89b784a1e8948177cb215512f59cdcd025653d4e 100644 --- a/app/controllers/ci/events_controller.rb +++ b/app/controllers/ci/events_controller.rb @@ -2,9 +2,9 @@ module Ci class EventsController < Ci::ApplicationController EVENTS_PER_PAGE = 50 - before_filter :authenticate_user! - before_filter :project - before_filter :authorize_manage_project! + before_action :authenticate_user! + before_action :project + before_action :authorize_manage_project! layout 'ci/project' diff --git a/app/controllers/ci/lints_controller.rb b/app/controllers/ci/lints_controller.rb index 62c2ba86e86990aec1c56cacfef44f1f877bb8f7..a81e4e319ffdc16556aedf4136346e52668385a2 100644 --- a/app/controllers/ci/lints_controller.rb +++ b/app/controllers/ci/lints_controller.rb @@ -1,6 +1,6 @@ module Ci class LintsController < Ci::ApplicationController - before_filter :authenticate_user! + before_action :authenticate_user! def show end diff --git a/app/controllers/ci/projects_controller.rb b/app/controllers/ci/projects_controller.rb index 454810ca01fc391d43eec7f0062c0141dcab6775..6483a84ee91e5d91124957e8dc39c1ff5e65d05e 100644 --- a/app/controllers/ci/projects_controller.rb +++ b/app/controllers/ci/projects_controller.rb @@ -2,13 +2,13 @@ module Ci class ProjectsController < Ci::ApplicationController PROJECTS_BATCH = 100 - before_filter :authenticate_user!, except: [:build, :badge, :index, :show] - before_filter :authenticate_public_page!, only: :show - before_filter :project, only: [:build, :integration, :show, :badge, :edit, :update, :destroy, :toggle_shared_runners, :dumped_yaml] - before_filter :authorize_access_project!, except: [:build, :gitlab, :badge, :index, :show, :new, :create] - before_filter :authorize_manage_project!, only: [:edit, :integration, :update, :destroy, :toggle_shared_runners, :dumped_yaml] - before_filter :authenticate_token!, only: [:build] - before_filter :no_cache, only: [:badge] + before_action :authenticate_user!, except: [:build, :badge, :index, :show] + before_action :authenticate_public_page!, only: :show + before_action :project, only: [:build, :integration, :show, :badge, :edit, :update, :destroy, :toggle_shared_runners, :dumped_yaml] + before_action :authorize_access_project!, except: [:build, :gitlab, :badge, :index, :show, :new, :create] + before_action :authorize_manage_project!, only: [:edit, :integration, :update, :destroy, :toggle_shared_runners, :dumped_yaml] + before_action :authenticate_token!, only: [:build] + before_action :no_cache, only: [:badge] protect_from_forgery except: :build layout 'ci/project', except: [:index, :gitlab] diff --git a/app/controllers/ci/runner_projects_controller.rb b/app/controllers/ci/runner_projects_controller.rb index 3a52087cc6bd61d01c39539b3af4e5130a2ddba7..5365f51082f7575540d6c668b5d5073ca63440b6 100644 --- a/app/controllers/ci/runner_projects_controller.rb +++ b/app/controllers/ci/runner_projects_controller.rb @@ -1,8 +1,8 @@ module Ci class RunnerProjectsController < Ci::ApplicationController - before_filter :authenticate_user! - before_filter :project - before_filter :authorize_manage_project! + before_action :authenticate_user! + before_action :project + before_action :authorize_manage_project! layout 'ci/project' diff --git a/app/controllers/ci/runners_controller.rb b/app/controllers/ci/runners_controller.rb index 0e9d576a15b1bb3dfc9c0ffeb40e75ea1fb4886c..a672370302baa8ab2d5b35b658e46d1abecf9a10 100644 --- a/app/controllers/ci/runners_controller.rb +++ b/app/controllers/ci/runners_controller.rb @@ -1,10 +1,10 @@ module Ci class RunnersController < Ci::ApplicationController - before_filter :authenticate_user! - before_filter :project - before_filter :set_runner, only: [:edit, :update, :destroy, :pause, :resume, :show] - before_filter :authorize_access_project! - before_filter :authorize_manage_project! + before_action :authenticate_user! + before_action :project + before_action :set_runner, only: [:edit, :update, :destroy, :pause, :resume, :show] + before_action :authorize_access_project! + before_action :authorize_manage_project! layout 'ci/project' diff --git a/app/controllers/ci/services_controller.rb b/app/controllers/ci/services_controller.rb index e99f40f3a0a097cfec7869bb756325c27df90492..1495223786d0d18b84a74cf055f8716baeb94c21 100644 --- a/app/controllers/ci/services_controller.rb +++ b/app/controllers/ci/services_controller.rb @@ -1,10 +1,10 @@ module Ci class ServicesController < Ci::ApplicationController - before_filter :authenticate_user! - before_filter :project - before_filter :authorize_access_project! - before_filter :authorize_manage_project! - before_filter :service, only: [:edit, :update, :test] + before_action :authenticate_user! + before_action :project + before_action :authorize_access_project! + before_action :authorize_manage_project! + before_action :service, only: [:edit, :update, :test] respond_to :html diff --git a/app/controllers/ci/triggers_controller.rb b/app/controllers/ci/triggers_controller.rb index 6ba37cd843e4033981b8f4fa2c5c184878535e28..a39cc5d3a56d3128909b3c0db962588074e4d59f 100644 --- a/app/controllers/ci/triggers_controller.rb +++ b/app/controllers/ci/triggers_controller.rb @@ -1,9 +1,9 @@ module Ci class TriggersController < Ci::ApplicationController - before_filter :authenticate_user! - before_filter :project - before_filter :authorize_access_project! - before_filter :authorize_manage_project! + before_action :authenticate_user! + before_action :project + before_action :authorize_access_project! + before_action :authorize_manage_project! layout 'ci/project' diff --git a/app/controllers/ci/variables_controller.rb b/app/controllers/ci/variables_controller.rb index 6908e0877f0903c2d66eb05331057cb3d09e9eaa..9c6c775fde805c990304265d7b21fa3c59326345 100644 --- a/app/controllers/ci/variables_controller.rb +++ b/app/controllers/ci/variables_controller.rb @@ -1,9 +1,9 @@ module Ci class VariablesController < Ci::ApplicationController - before_filter :authenticate_user! - before_filter :project - before_filter :authorize_access_project! - before_filter :authorize_manage_project! + before_action :authenticate_user! + before_action :project + before_action :authorize_access_project! + before_action :authorize_manage_project! layout 'ci/project' diff --git a/app/controllers/ci/web_hooks_controller.rb b/app/controllers/ci/web_hooks_controller.rb index eea4842c91ca311521aae4dabc82d8e9127cec87..24074a6d9acf4200e25387780aff40b4584b5d77 100644 --- a/app/controllers/ci/web_hooks_controller.rb +++ b/app/controllers/ci/web_hooks_controller.rb @@ -1,9 +1,9 @@ module Ci class WebHooksController < Ci::ApplicationController - before_filter :authenticate_user! - before_filter :project - before_filter :authorize_access_project! - before_filter :authorize_manage_project! + before_action :authenticate_user! + before_action :project + before_action :authorize_access_project! + before_action :authorize_manage_project! layout 'ci/project' diff --git a/lib/ci/backup/database.rb b/lib/ci/backup/database.rb index f7fa3f1833a1de0d0abcca27d31ddaec93496a3e..3f2277024e4888123fb8bb3014bf87f82a3f9049 100644 --- a/lib/ci/backup/database.rb +++ b/lib/ci/backup/database.rb @@ -13,13 +13,13 @@ module Ci def dump success = case config["adapter"] - when /^mysql/ then - $progress.print "Dumping MySQL database #{config['database']} ... " - system('mysqldump', *mysql_args, config['database'], out: db_file_name) - when "postgresql" then - $progress.print "Dumping PostgreSQL database #{config['database']} ... " - pg_env - system('pg_dump', config['database'], out: db_file_name) + when /^mysql/ then + $progress.print "Dumping MySQL database #{config['database']} ... " + system('mysqldump', *mysql_args, config['database'], out: db_file_name) + when "postgresql" then + $progress.print "Dumping PostgreSQL database #{config['database']} ... " + pg_env + system('pg_dump', config['database'], out: db_file_name) end report_success(success) abort 'Backup failed' unless success @@ -27,17 +27,17 @@ module Ci def restore success = case config["adapter"] - when /^mysql/ then - $progress.print "Restoring MySQL database #{config['database']} ... " - system('mysql', *mysql_args, config['database'], in: db_file_name) - when "postgresql" then - $progress.print "Restoring PostgreSQL database #{config['database']} ... " - # Drop all tables because PostgreSQL DB dumps do not contain DROP TABLE - # statements like MySQL. - drop_all_tables - drop_all_postgres_sequences - pg_env - system('psql', config['database'], '-f', db_file_name) + when /^mysql/ then + $progress.print "Restoring MySQL database #{config['database']} ... " + system('mysql', *mysql_args, config['database'], in: db_file_name) + when "postgresql" then + $progress.print "Restoring PostgreSQL database #{config['database']} ... " + # Drop all tables because PostgreSQL DB dumps do not contain DROP TABLE + # statements like MySQL. + drop_all_tables + drop_all_postgres_sequences + pg_env + system('psql', config['database'], '-f', db_file_name) end report_success(success) abort 'Restore failed' unless success diff --git a/spec/controllers/ci/projects_controller_spec.rb b/spec/controllers/ci/projects_controller_spec.rb index 563064b0cef769ba66f198aeb289d4cab3ae52bd..f710e2a3808dad06eaace70af75db6b90f3c408b 100644 --- a/spec/controllers/ci/projects_controller_spec.rb +++ b/spec/controllers/ci/projects_controller_spec.rb @@ -8,12 +8,12 @@ describe Ci::ProjectsController do describe "POST #build" do it 'should respond 200 if params is ok' do post :build, id: @project.id, - ref: 'master', - before: '2aa371379db71ac89ae20843fcff3b3477cf1a1d', - after: '1c8a9df454ef68c22c2a33cca8232bb50849e5c5', - token: @project.token, + ref: 'master', + before: '2aa371379db71ac89ae20843fcff3b3477cf1a1d', + after: '1c8a9df454ef68c22c2a33cca8232bb50849e5c5', + token: @project.token, ci_yaml_file: gitlab_ci_yaml, - commits: [ { message: "Message" } ] + commits: [ { message: "Message" } ] expect(response).to be_success @@ -22,10 +22,10 @@ describe Ci::ProjectsController do it 'should respond 400 if push about removed branch' do post :build, id: @project.id, - ref: 'master', - before: '2aa371379db71ac89ae20843fcff3b3477cf1a1d', - after: '0000000000000000000000000000000000000000', - token: @project.token, + ref: 'master', + before: '2aa371379db71ac89ae20843fcff3b3477cf1a1d', + after: '0000000000000000000000000000000000000000', + token: @project.token, ci_yaml_file: gitlab_ci_yaml expect(response).not_to be_success diff --git a/spec/factories/ci/commits.rb b/spec/factories/ci/commits.rb index c1d42b607c33f4a14bf151a3406406e343e2aaf6..70930c789c3329ab1c53c5b176e0f94daa27c16f 100644 --- a/spec/factories/ci/commits.rb +++ b/spec/factories/ci/commits.rb @@ -60,14 +60,14 @@ FactoryGirl.define do factory :ci_commit_with_one_job do after(:create) do |commit, evaluator| - commit.push_data[:ci_yaml_file] = YAML.dump({rspec: { script: "ls" }}) + commit.push_data[:ci_yaml_file] = YAML.dump({ rspec: { script: "ls" } }) commit.save end end factory :ci_commit_with_two_jobs do after(:create) do |commit, evaluator| - commit.push_data[:ci_yaml_file] = YAML.dump({rspec: { script: "ls" }, spinach: { script: "ls" }}) + commit.push_data[:ci_yaml_file] = YAML.dump({ rspec: { script: "ls" }, spinach: { script: "ls" } }) commit.save end end diff --git a/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb b/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb index efc056766768e666483509c6a38a60b72a667aa8..c99add3f716f3e5e36085ff46280bf6f232ad9f7 100644 --- a/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb +++ b/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb @@ -131,7 +131,7 @@ describe Ci::GitlabCiYamlProcessor do image: "ruby:2.1", services: ["mysql"], before_script: ["pwd"], - rspec: {image: "ruby:2.5", services: ["postgresql"], script: "rspec"} + rspec: { image: "ruby:2.5", services: ["postgresql"], script: "rspec" } }) config_processor = GitlabCiYamlProcessor.new(config) @@ -176,133 +176,133 @@ describe Ci::GitlabCiYamlProcessor do end it "returns errors if tags parameter is invalid" do - config = YAML.dump({rspec: {script: "test", tags: "mysql"}}) + config = YAML.dump({ rspec: { script: "test", tags: "mysql" } }) expect do GitlabCiYamlProcessor.new(config) end.to raise_error(GitlabCiYamlProcessor::ValidationError, "rspec job: tags parameter should be an array of strings") end it "returns errors if before_script parameter is invalid" do - config = YAML.dump({before_script: "bundle update", rspec: {script: "test"}}) + config = YAML.dump({ before_script: "bundle update", rspec: { script: "test" } }) expect do GitlabCiYamlProcessor.new(config) end.to raise_error(GitlabCiYamlProcessor::ValidationError, "before_script should be an array of strings") end it "returns errors if image parameter is invalid" do - config = YAML.dump({image: ["test"], rspec: {script: "test"}}) + config = YAML.dump({ image: ["test"], rspec: { script: "test" } }) expect do GitlabCiYamlProcessor.new(config) end.to raise_error(GitlabCiYamlProcessor::ValidationError, "image should be a string") end it "returns errors if job image parameter is invalid" do - config = YAML.dump({rspec: {script: "test", image: ["test"]}}) + config = YAML.dump({rspec: { script: "test", image: ["test"] } }) expect do GitlabCiYamlProcessor.new(config) end.to raise_error(GitlabCiYamlProcessor::ValidationError, "rspec job: image should be a string") end it "returns errors if services parameter is not an array" do - config = YAML.dump({services: "test", rspec: {script: "test"}}) + config = YAML.dump({ services: "test", rspec: { script: "test" } }) expect do GitlabCiYamlProcessor.new(config) end.to raise_error(GitlabCiYamlProcessor::ValidationError, "services should be an array of strings") end it "returns errors if services parameter is not an array of strings" do - config = YAML.dump({services: [10, "test"], rspec: {script: "test"}}) + config = YAML.dump({ services: [10, "test"], rspec: { script: "test" } }) expect do GitlabCiYamlProcessor.new(config) end.to raise_error(GitlabCiYamlProcessor::ValidationError, "services should be an array of strings") end it "returns errors if job services parameter is not an array" do - config = YAML.dump({rspec: {script: "test", services: "test"}}) + config = YAML.dump({ rspec: { script: "test", services: "test" } }) expect do GitlabCiYamlProcessor.new(config) end.to raise_error(GitlabCiYamlProcessor::ValidationError, "rspec job: services should be an array of strings") end it "returns errors if job services parameter is not an array of strings" do - config = YAML.dump({rspec: {script: "test", services: [10, "test"]}}) + config = YAML.dump({ rspec: { script: "test", services: [10, "test"] } }) expect do GitlabCiYamlProcessor.new(config) end.to raise_error(GitlabCiYamlProcessor::ValidationError, "rspec job: services should be an array of strings") end it "returns errors if there are unknown parameters" do - config = YAML.dump({extra: "bundle update"}) + config = YAML.dump({ extra: "bundle update" }) expect do GitlabCiYamlProcessor.new(config) end.to raise_error(GitlabCiYamlProcessor::ValidationError, "Unknown parameter: extra") end it "returns errors if there are unknown parameters that are hashes, but doesn't have a script" do - config = YAML.dump({extra: {services: "test"}}) + config = YAML.dump({ extra: {services: "test" } }) expect do GitlabCiYamlProcessor.new(config) end.to raise_error(GitlabCiYamlProcessor::ValidationError, "Unknown parameter: extra") end it "returns errors if there is no any jobs defined" do - config = YAML.dump({before_script: ["bundle update"]}) + config = YAML.dump({ before_script: ["bundle update"] }) expect do GitlabCiYamlProcessor.new(config) end.to raise_error(GitlabCiYamlProcessor::ValidationError, "Please define at least one job") end it "returns errors if job allow_failure parameter is not an boolean" do - config = YAML.dump({rspec: {script: "test", allow_failure: "string"}}) + config = YAML.dump({ rspec: { script: "test", allow_failure: "string" } }) expect do GitlabCiYamlProcessor.new(config) end.to raise_error(GitlabCiYamlProcessor::ValidationError, "rspec job: allow_failure parameter should be an boolean") end it "returns errors if job stage is not a string" do - config = YAML.dump({rspec: {script: "test", type: 1, allow_failure: "string"}}) + config = YAML.dump({ rspec: { script: "test", type: 1, allow_failure: "string" } }) expect do GitlabCiYamlProcessor.new(config) end.to raise_error(GitlabCiYamlProcessor::ValidationError, "rspec job: stage parameter should be build, test, deploy") end it "returns errors if job stage is not a pre-defined stage" do - config = YAML.dump({rspec: {script: "test", type: "acceptance", allow_failure: "string"}}) + config = YAML.dump({rspec: { script: "test", type: "acceptance", allow_failure: "string" } }) expect do GitlabCiYamlProcessor.new(config) end.to raise_error(GitlabCiYamlProcessor::ValidationError, "rspec job: stage parameter should be build, test, deploy") end it "returns errors if job stage is not a defined stage" do - config = YAML.dump({types: ["build", "test"], rspec: {script: "test", type: "acceptance", allow_failure: "string"}}) + config = YAML.dump({ types: ["build", "test"], rspec: { script: "test", type: "acceptance", allow_failure: "string" } }) expect do GitlabCiYamlProcessor.new(config) end.to raise_error(GitlabCiYamlProcessor::ValidationError, "rspec job: stage parameter should be build, test") end it "returns errors if stages is not an array" do - config = YAML.dump({types: "test", rspec: {script: "test"}}) + config = YAML.dump({ types: "test", rspec: { script: "test" } }) expect do GitlabCiYamlProcessor.new(config) end.to raise_error(GitlabCiYamlProcessor::ValidationError, "stages should be an array of strings") end it "returns errors if stages is not an array of strings" do - config = YAML.dump({types: [true, "test"], rspec: {script: "test"}}) + config = YAML.dump({ types: [true, "test"], rspec: { script: "test" } }) expect do GitlabCiYamlProcessor.new(config) end.to raise_error(GitlabCiYamlProcessor::ValidationError, "stages should be an array of strings") end it "returns errors if variables is not a map" do - config = YAML.dump({variables: "test", rspec: {script: "test"}}) + config = YAML.dump({ variables: "test", rspec: { script: "test" } }) expect do GitlabCiYamlProcessor.new(config) end.to raise_error(GitlabCiYamlProcessor::ValidationError, "variables should be a map of key-valued strings") end it "returns errors if variables is not a map of key-valued strings" do - config = YAML.dump({variables: {test: false}, rspec: {script: "test"}}) + config = YAML.dump({ variables: { test: false }, rspec: { script: "test" } }) expect do GitlabCiYamlProcessor.new(config) end.to raise_error(GitlabCiYamlProcessor::ValidationError, "variables should be a map of key-valued strings") diff --git a/spec/models/ci/build_spec.rb b/spec/models/ci/build_spec.rb index b62c5862c0ca3f351b285d0b181a7713ee52c6ca..4f57003565aec0c50ad93b0fcb2a34ef6058215c 100644 --- a/spec/models/ci/build_spec.rb +++ b/spec/models/ci/build_spec.rb @@ -211,14 +211,14 @@ describe Ci::Build do end describe :options do - let(:options) { + let(:options) do { - :image => "ruby:2.1", - :services => [ + image: "ruby:2.1", + services: [ "postgres" ] } - } + end subject { build.options } it { is_expected.to eq(options) } @@ -308,20 +308,20 @@ describe Ci::Build do context 'returns variables' do subject { build.variables } - let(:variables) { + let(:variables) do [ - {key: :DB_NAME, value: 'postgres', public: true} + { key: :DB_NAME, value: 'postgres', public: true } ] - } + end it { is_expected.to eq(variables) } context 'and secure variables' do - let(:secure_variables) { + let(:secure_variables) do [ - {key: 'SECRET_KEY', value: 'secret_value', public: false} + { key: 'SECRET_KEY', value: 'secret_value', public: false } ] - } + end before do build.project.variables << Ci::Variable.new(key: 'SECRET_KEY', value: 'secret_value') @@ -332,11 +332,11 @@ describe Ci::Build do context 'and trigger variables' do let(:trigger) { FactoryGirl.create :ci_trigger, project: project } let(:trigger_request) { FactoryGirl.create :ci_trigger_request_with_variables, commit: commit, trigger: trigger } - let(:trigger_variables) { + let(:trigger_variables) do [ - {key: :TRIGGER_KEY, value: 'TRIGGER_VALUE', public: false} + { key: :TRIGGER_KEY, value: 'TRIGGER_VALUE', public: false } ] - } + end before do build.trigger_request = trigger_request diff --git a/spec/models/ci/mail_service_spec.rb b/spec/models/ci/mail_service_spec.rb index e3f326d783b78fbc2727c0c48e47fff82627f265..51511641afcf1913f100a372caa6eb1e9d4b8fd5 100644 --- a/spec/models/ci/mail_service_spec.rb +++ b/spec/models/ci/mail_service_spec.rb @@ -75,12 +75,12 @@ describe Ci::MailService do end describe 'successfull build and project has email_recipients' do - let(:project) { + let(:project) do FactoryGirl.create(:ci_project, email_add_pusher: true, email_only_broken_builds: false, email_recipients: "jeroen@example.com") - } + end let(:commit) { FactoryGirl.create(:ci_commit, project: project) } let(:build) { FactoryGirl.create(:ci_build, status: :success, commit: commit) } @@ -103,12 +103,12 @@ describe Ci::MailService do end describe 'successful build and notify only broken builds' do - let(:project) { + let(:project) do FactoryGirl.create(:ci_project, email_add_pusher: true, email_only_broken_builds: true, email_recipients: "jeroen@example.com") - } + end let(:commit) { FactoryGirl.create(:ci_commit, project: project) } let(:build) { FactoryGirl.create(:ci_build, status: :success, commit: commit) } @@ -131,12 +131,12 @@ describe Ci::MailService do end describe 'successful build and can test service' do - let(:project) { + let(:project) do FactoryGirl.create(:ci_project, email_add_pusher: true, email_only_broken_builds: false, email_recipients: "jeroen@example.com") - } + end let(:commit) { FactoryGirl.create(:ci_commit, project: project) } let(:build) { FactoryGirl.create(:ci_build, status: :success, commit: commit) } @@ -153,12 +153,12 @@ describe Ci::MailService do end describe 'retried build should not receive email' do - let(:project) { + let(:project) do FactoryGirl.create(:ci_project, email_add_pusher: true, email_only_broken_builds: true, email_recipients: "jeroen@example.com") - } + end let(:commit) { FactoryGirl.create(:ci_commit, project: project) } let(:build) { FactoryGirl.create(:ci_build, status: :failed, commit: commit) } diff --git a/spec/models/ci/project_spec.rb b/spec/models/ci/project_spec.rb index 1be276a9ef8f43bbe74946b2f18cd2f84627007d..48f76e11ce9e57a59dfa5966b5e9f3f639079d2a 100644 --- a/spec/models/ci/project_spec.rb +++ b/spec/models/ci/project_spec.rb @@ -94,33 +94,33 @@ describe Ci::Project do end describe '#broken_or_success?' do - it { + it do project = FactoryGirl.create :ci_project, email_add_pusher: true allow(project).to receive(:broken?).and_return(true) allow(project).to receive(:success?).and_return(true) expect(project.broken_or_success?).to eq(true) - } + end - it { + it do project = FactoryGirl.create :ci_project, email_add_pusher: true allow(project).to receive(:broken?).and_return(true) allow(project).to receive(:success?).and_return(false) expect(project.broken_or_success?).to eq(true) - } + end - it { + it do project = FactoryGirl.create :ci_project, email_add_pusher: true allow(project).to receive(:broken?).and_return(false) allow(project).to receive(:success?).and_return(true) expect(project.broken_or_success?).to eq(true) - } + end - it { + it do project = FactoryGirl.create :ci_project, email_add_pusher: true allow(project).to receive(:broken?).and_return(false) allow(project).to receive(:success?).and_return(false) expect(project.broken_or_success?).to eq(false) - } + end end describe 'Project.parse' do diff --git a/spec/requests/ci/api/builds_spec.rb b/spec/requests/ci/api/builds_spec.rb index c416ca98e1f0cb3682a36b65f4fd6cd511a21583..61f9d940c3b0dd2848ca6ba6b20107e238d0f7de 100644 --- a/spec/requests/ci/api/builds_spec.rb +++ b/spec/requests/ci/api/builds_spec.rb @@ -20,7 +20,7 @@ describe Ci::API::API do commit.create_builds build = commit.builds.first - post api("/builds/register"), token: runner.token, info: {platform: :darwin} + post api("/builds/register"), token: runner.token, info: { platform: :darwin } expect(response.status).to eq(201) expect(json_response['sha']).to eq(build.sha) @@ -55,10 +55,10 @@ describe Ci::API::API do commit = FactoryGirl.create(:ci_commit, project: project) commit.create_builds - post api("/builds/register"), token: runner.token, info: {platform: :darwin} + post api("/builds/register"), token: runner.token, info: { platform: :darwin } expect(response.status).to eq(201) - expect(json_response["options"]).to eq({"image" => "ruby:2.1", "services" => ["postgres"]}) + expect(json_response["options"]).to eq({ "image" => "ruby:2.1", "services" => ["postgres"] }) end it "returns variables" do @@ -66,12 +66,12 @@ describe Ci::API::API do commit.create_builds project.variables << Variable.new(key: "SECRET_KEY", value: "secret_value") - post api("/builds/register"), token: runner.token, info: {platform: :darwin} + post api("/builds/register"), token: runner.token, info: { platform: :darwin } expect(response.status).to eq(201) expect(json_response["variables"]).to eq([ - {"key" => "DB_NAME", "value" => "postgres", "public" => true}, - {"key" => "SECRET_KEY", "value" => "secret_value", "public" => false}, + { "key" => "DB_NAME", "value" => "postgres", "public" => true }, + { "key" => "SECRET_KEY", "value" => "secret_value", "public" => false }, ]) end @@ -83,13 +83,13 @@ describe Ci::API::API do commit.create_builds(trigger_request) project.variables << Variable.new(key: "SECRET_KEY", value: "secret_value") - post api("/builds/register"), token: runner.token, info: {platform: :darwin} + post api("/builds/register"), token: runner.token, info: { platform: :darwin } expect(response.status).to eq(201) expect(json_response["variables"]).to eq([ - {"key" => "DB_NAME", "value" => "postgres", "public" => true}, - {"key" => "SECRET_KEY", "value" => "secret_value", "public" => false}, - {"key" => "TRIGGER_KEY", "value" => "TRIGGER_VALUE", "public" => false}, + { "key" => "DB_NAME", "value" => "postgres", "public" => true }, + { "key" => "SECRET_KEY", "value" => "secret_value", "public" => false }, + { "key" => "TRIGGER_KEY", "value" => "TRIGGER_VALUE", "public" => false }, ]) end end diff --git a/spec/requests/ci/api/commits_spec.rb b/spec/requests/ci/api/commits_spec.rb index 2ead68e2290ef79823b161a570b412f56601bddb..a4c2a507e88b324331cdab748f209dc4ebc8019d 100644 --- a/spec/requests/ci/api/commits_spec.rb +++ b/spec/requests/ci/api/commits_spec.rb @@ -6,12 +6,12 @@ describe Ci::API::API, 'Commits' do let(:project) { FactoryGirl.create(:ci_project) } let(:commit) { FactoryGirl.create(:ci_commit, project: project) } - let(:options) { + let(:options) do { project_token: project.token, project_id: project.id } - } + end describe "GET /commits" do before { commit } @@ -27,7 +27,7 @@ describe Ci::API::API, 'Commits' do end describe "POST /commits" do - let(:data) { + let(:data) do { "before" => "95790bf891e76fee5e1747ab589903a6a1f80f22", "after" => "da1560886d4f094c3e6c9ef40349f7d38b5d27d7", @@ -46,7 +46,7 @@ describe Ci::API::API, 'Commits' do ], ci_yaml_file: gitlab_ci_yaml } - } + end it "should create a build" do post api("/commits"), options.merge(data: data) diff --git a/spec/requests/ci/api/forks_spec.rb b/spec/requests/ci/api/forks_spec.rb index 27b9d045c8c9a7bcfe2f17c1bdbc1554f22d5289..6f5dc0bc1d98f7884493248c9a6300141f7c7731 100644 --- a/spec/requests/ci/api/forks_spec.rb +++ b/spec/requests/ci/api/forks_spec.rb @@ -7,20 +7,20 @@ describe Ci::API::API do let(:gitlab_url) { GitlabCi.config.gitlab_server.url } let(:private_token) { Network.new.authenticate(access_token: "some_token")["private_token"] } - let(:options) { + let(:options) do { private_token: private_token, url: gitlab_url } - } + end - before { + before do stub_gitlab_calls - } + end describe "POST /forks" do - let(:project_info) { + let(:project_info) do { project_id: project.gitlab_id, project_token: project.token, @@ -32,7 +32,7 @@ describe Ci::API::API do ssh_url_to_repo: "git@example.com:gitlab-org/underscore" } } - } + end context "with valid info" do before do diff --git a/spec/requests/ci/api/projects_spec.rb b/spec/requests/ci/api/projects_spec.rb index bca2c48c75260c4020cc495f74c76cdfc75ea753..05f6bd5f4f301eef7c5b9fea82d99dfa73bb4d87 100644 --- a/spec/requests/ci/api/projects_spec.rb +++ b/spec/requests/ci/api/projects_spec.rb @@ -6,16 +6,16 @@ describe Ci::API::API do let(:gitlab_url) { GitlabCi.config.gitlab_server.url } let(:private_token) { Network.new.authenticate(access_token: "some_token")["private_token"] } - let(:options) { + let(:options) do { private_token: private_token, url: gitlab_url } - } + end - before { + before do stub_gitlab_calls - } + end context "requests for scoped projects" do # NOTE: These ids are tied to the actual projects on demo.gitlab.com @@ -75,7 +75,7 @@ describe Ci::API::API do end context "Invalid Webhook URL" do - let!(:webhook) { {web_hook: "ala_ma_kota" } } + let!(:webhook) { { web_hook: "ala_ma_kota" } } before do options.merge!(webhook) @@ -116,7 +116,7 @@ describe Ci::API::API do describe "PUT /projects/:id" do let!(:project) { FactoryGirl.create(:ci_project) } - let!(:project_info) { {name: "An updated name!" } } + let!(:project_info) { { name: "An updated name!" } } before do options.merge!(project_info) @@ -163,14 +163,14 @@ describe Ci::API::API do end describe "POST /projects" do - let(:project_info) { + let(:project_info) do { name: "My project", gitlab_id: 1, path: "testing/testing", ssh_url_to_repo: "ssh://example.com/testing/testing.git" } - } + end let(:invalid_project_info) { {} } diff --git a/spec/requests/ci/api/runners_spec.rb b/spec/requests/ci/api/runners_spec.rb index 61ea3be870d0df3d163fa8d98148004e95ceff7d..714e5a5a84f32747f8fce04be67dc30e9faee7d6 100644 --- a/spec/requests/ci/api/runners_spec.rb +++ b/spec/requests/ci/api/runners_spec.rb @@ -4,19 +4,19 @@ describe Ci::API::API do include ApiHelpers include StubGitlabCalls - before { + before do stub_gitlab_calls - } + end describe "GET /runners" do let(:gitlab_url) { GitlabCi.config.gitlab_server.url } let(:private_token) { Network.new.authenticate(access_token: "some_token")["private_token"] } - let(:options) { + let(:options) do { - :private_token => private_token, - :url => gitlab_url + private_token: private_token, + url: gitlab_url } - } + end before do 5.times { FactoryGirl.create(:ci_runner) } diff --git a/spec/requests/ci/api/triggers_spec.rb b/spec/requests/ci/api/triggers_spec.rb index 56757c8f8c78b67aeb6beb60775cc2dfd93e4729..56799b5203ac20d374146e68a8e5319813eb1365 100644 --- a/spec/requests/ci/api/triggers_spec.rb +++ b/spec/requests/ci/api/triggers_spec.rb @@ -50,9 +50,9 @@ describe Ci::API::API do end context 'Validates variables' do - let(:variables) { - {'TRIGGER_KEY' => 'TRIGGER_VALUE'} - } + let(:variables) do + { 'TRIGGER_KEY' => 'TRIGGER_VALUE' } + end it 'should validate variables to be a hash' do post api("/projects/#{project.id}/refs/master/trigger"), options.merge(variables: 'value') @@ -61,7 +61,7 @@ describe Ci::API::API do end it 'should validate variables needs to be a map of key-valued strings' do - post api("/projects/#{project.id}/refs/master/trigger"), options.merge(variables: {key: %w(1 2)}) + post api("/projects/#{project.id}/refs/master/trigger"), options.merge(variables: { key: %w(1 2) }) expect(response.status).to eq(400) expect(json_response['message']).to eq('variables needs to be a map of key-valued strings') end diff --git a/spec/services/ci/create_commit_service_spec.rb b/spec/services/ci/create_commit_service_spec.rb index cc30b9e83f12936c6f529d3865360bae291e7d3a..2bb8c5acb654e8d0ce58ca7691dad385141657ac 100644 --- a/spec/services/ci/create_commit_service_spec.rb +++ b/spec/services/ci/create_commit_service_spec.rb @@ -36,7 +36,7 @@ describe Ci::CreateCommitService do 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"]}}) + config = YAML.dump({ deploy: { deploy: "ls", only: ["0_1"] } }) result = service.execute(project, ref: 'refs/heads/0_1', @@ -51,7 +51,7 @@ describe Ci::CreateCommitService do describe :ci_skip? do it "skips builds creation if there is [ci skip] tag in commit message" do - commits = [{message: "some message[ci skip]"}] + commits = [{ message: "some message[ci skip]" }] commit = service.execute(project, ref: 'refs/tags/0_1', before: '00000000', @@ -64,7 +64,7 @@ describe Ci::CreateCommitService do end it "does not skips builds creation if there is no [ci skip] tag in commit message" do - commits = [{message: "some message"}] + commits = [{ message: "some message" }] commit = service.execute(project, ref: 'refs/tags/0_1', @@ -78,7 +78,7 @@ describe Ci::CreateCommitService do end it "skips builds creation if there is [ci skip] tag in commit message and yaml is invalid" do - commits = [{message: "some message[ci skip]"}] + commits = [{ message: "some message[ci skip]" }] commit = service.execute(project, ref: 'refs/tags/0_1', before: '00000000', @@ -92,7 +92,7 @@ describe Ci::CreateCommitService do end it "skips build creation if there are already builds" do - commits = [{message: "message"}] + commits = [{ message: "message" }] commit = service.execute(project, ref: 'refs/heads/master', before: '00000000', @@ -113,7 +113,7 @@ describe Ci::CreateCommitService do end it "creates commit with failed status if yaml is invalid" do - commits = [{message: "some message"}] + commits = [{ message: "some message" }] commit = service.execute(project, ref: 'refs/tags/0_1', diff --git a/spec/support/stub_gitlab_calls.rb b/spec/support/stub_gitlab_calls.rb index fadc3df412b305000f9aa4aa19bb403171bf5c4c..41e4c3e275ba110e85f174e13cf0d3337a245966 100644 --- a/spec/support/stub_gitlab_calls.rb +++ b/spec/support/stub_gitlab_calls.rb @@ -23,21 +23,21 @@ module StubGitlabCalls f = File.read(Rails.root.join('spec/support/gitlab_stubs/session.json')) stub_request(:post, "#{gitlab_url}api/v3/session.json"). - with(:body => "{\"email\":\"test@test.com\",\"password\":\"123456\"}", - :headers => {'Content-Type'=>'application/json'}). - to_return(:status => 201, :body => f, :headers => {'Content-Type'=>'application/json'}) + with(body: "{\"email\":\"test@test.com\",\"password\":\"123456\"}", + headers: {'Content-Type'=>'application/json'}). + to_return(status: 201, body: f, headers: {'Content-Type'=>'application/json'}) end def stub_user f = File.read(Rails.root.join('spec/support/gitlab_stubs/user.json')) stub_request(:get, "#{gitlab_url}api/v3/user?private_token=Wvjy2Krpb7y8xi93owUz"). - with(:headers => {'Content-Type'=>'application/json'}). - to_return(:status => 200, :body => f, :headers => {'Content-Type'=>'application/json'}) + with(headers: {'Content-Type'=>'application/json'}). + to_return(status: 200, body: f, headers: {'Content-Type'=>'application/json'}) stub_request(:get, "#{gitlab_url}api/v3/user?access_token=some_token"). - with(:headers => {'Content-Type'=>'application/json'}). - to_return(:status => 200, :body => f, :headers => {'Content-Type'=>'application/json'}) + with(headers: {'Content-Type'=>'application/json'}). + to_return(status: 200, body: f, headers: {'Content-Type'=>'application/json'}) end def stub_project_8 @@ -54,24 +54,24 @@ module StubGitlabCalls f = File.read(Rails.root.join('spec/support/gitlab_stubs/projects.json')) stub_request(:get, "#{gitlab_url}api/v3/projects.json?archived=false&ci_enabled_first=true&private_token=Wvjy2Krpb7y8xi93owUz"). - with(:headers => {'Content-Type'=>'application/json'}). - to_return(:status => 200, :body => f, :headers => {'Content-Type'=>'application/json'}) + with(headers: {'Content-Type'=>'application/json'}). + to_return(status: 200, body: f, headers: {'Content-Type'=>'application/json'}) end def stub_projects_owned stub_request(:get, "#{gitlab_url}api/v3/projects/owned.json?archived=false&ci_enabled_first=true&private_token=Wvjy2Krpb7y8xi93owUz"). - with(:headers => {'Content-Type'=>'application/json'}). - to_return(:status => 200, :body => "", :headers => {}) + with(headers: {'Content-Type'=>'application/json'}). + to_return(status: 200, body: "", headers: {}) end def stub_ci_enable stub_request(:put, "#{gitlab_url}api/v3/projects/2/services/gitlab-ci.json?private_token=Wvjy2Krpb7y8xi93owUz"). - with(:headers => {'Content-Type'=>'application/json'}). - to_return(:status => 200, :body => "", :headers => {}) + with(headers: {'Content-Type'=>'application/json'}). + to_return(status: 200, body: "", headers: {}) end def project_hash_array f = File.read(Rails.root.join('spec/support/gitlab_stubs/projects.json')) - return JSON.parse f + JSON.parse f end end