summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValery Sizov <vsv2711@gmail.com>2015-04-28 17:59:42 +0300
committerValery Sizov <vsv2711@gmail.com>2015-04-28 17:59:42 +0300
commitb9bbbb319a8186f2b2aecba9a0bd33c95e2d3353 (patch)
tree02414526097d2ca33320914a386738e6cd901df0
parent5f4de8f91e6e75e2d70e199156a813d9608a0fe3 (diff)
downloadgitlab-ci-b9bbbb319a8186f2b2aecba9a0bd33c95e2d3353.tar.gz
Fix 'ci skip' tag
-rw-r--r--app/models/commit.rb4
-rw-r--r--app/services/create_commit_service.rb4
-rw-r--r--spec/models/commit_spec.rb14
-rw-r--r--spec/services/create_commit_service_spec.rb17
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