diff options
| -rw-r--r-- | app/models/commit.rb | 4 | ||||
| -rw-r--r-- | app/services/create_commit_service.rb | 4 | ||||
| -rw-r--r-- | spec/models/commit_spec.rb | 14 | ||||
| -rw-r--r-- | spec/services/create_commit_service_spec.rb | 17 |
4 files changed, 21 insertions, 18 deletions
diff --git a/app/models/commit.rb b/app/models/commit.rb index bfc7878..bc33350 100644 --- a/app/models/commit.rb +++ b/app/models/commit.rb @@ -58,10 +58,6 @@ class Commit < ActiveRecord::Base project.gitlab? end - def ci_skip? - !!(git_commit_message =~ /(\[ci skip\])/) - end - def git_author_name commit_data[:author][:name] if commit_data && commit_data[:author] end diff --git a/app/services/create_commit_service.rb b/app/services/create_commit_service.rb index 0671a70..646b7c5 100644 --- a/app/services/create_commit_service.rb +++ b/app/services/create_commit_service.rb @@ -15,6 +15,10 @@ class CreateCommitService return false end + if params[:commits] && params[:commits].last[:message] =~ /(\[ci skip\])/ + return false + end + if origin_ref.start_with?('refs/tags/') && !project.create_commit_for_tag?(ref) return false end diff --git a/spec/models/commit_spec.rb b/spec/models/commit_spec.rb index af53df9..28cd0ef 100644 --- a/spec/models/commit_spec.rb +++ b/spec/models/commit_spec.rb @@ -54,20 +54,6 @@ describe Commit do end end - describe :ci_skip? do - let(:project) { FactoryGirl.create(:project) } - let(:commit) { FactoryGirl.create(:commit, project: project) } - - it 'true if commit message contains [ci skip]' do - commit.stub(:git_commit_message) { 'Small typo [ci skip]' } - commit.ci_skip?.should == true - end - - it 'false if commit message does not contain [ci skip]' do - commit.ci_skip?.should == false - end - end - describe :project_recipients do context 'always sending notification' do diff --git a/spec/services/create_commit_service_spec.rb b/spec/services/create_commit_service_spec.rb index 761bfaf..7a4ff7d 100644 --- a/spec/services/create_commit_service_spec.rb +++ b/spec/services/create_commit_service_spec.rb @@ -73,5 +73,22 @@ describe CreateCommitService do result.should be_persisted end end + + describe :ci_skip? do + it "skips commit creation if there is [ci skip] tag in commit message" do + commits = [{message: "some message[ci skip]"}] + result = service.execute(project, ref: 'refs/tags/0_1', before: '00000000', after: '31das312', commits: commits) + result.should be_false + end + + it "does not skips commit creation if there is no [ci skip] tag in commit message" do + project.jobs.first.update(build_tags: true) + + commits = [{message: "some message"}] + + result = service.execute(project, ref: 'refs/tags/0_1', before: '00000000', after: '31das312', commits: commits) + result.should be_persisted + end + end end end |
