Skip to content
Snippets Groups Projects
Commit 52795c40 authored by Robert Speicher's avatar Robert Speicher
Browse files

Merge branch 'update-ci-skip-regex-to-accept-underscores-and-hyphens' into 'master'

updated ci skip regex to accept underscores and hyphens

See merge request !9130
parents 972b77f7 ad88cf3e
No related branches found
No related tags found
No related merge requests found
Loading
@@ -59,7 +59,8 @@ module Ci
Loading
@@ -59,7 +59,8 @@ module Ci
private private
   
def skip_ci? def skip_ci?
pipeline.git_commit_message =~ /\[(ci skip|skip ci)\]/i if pipeline.git_commit_message return false unless pipeline.git_commit_message
pipeline.git_commit_message =~ /\[(ci[ _-]skip|skip[ _-]ci)\]/i
end end
   
def commit def commit
Loading
Loading
Loading
@@ -79,66 +79,53 @@ describe Ci::CreatePipelineService, services: true do
Loading
@@ -79,66 +79,53 @@ describe Ci::CreatePipelineService, services: true do
   
context 'when commit contains a [ci skip] directive' do context 'when commit contains a [ci skip] directive' do
let(:message) { "some message[ci skip]" } let(:message) { "some message[ci skip]" }
let(:messageFlip) { "some message[skip ci]" }
let(:capMessage) { "some message[CI SKIP]" } ci_messages = [
let(:capMessageFlip) { "some message[SKIP CI]" } "some message[ci skip]",
"some message[skip ci]",
"some message[CI SKIP]",
"some message[SKIP CI]",
"some message[ci_skip]",
"some message[skip_ci]",
"some message[ci-skip]",
"some message[skip-ci]"
]
   
before do before do
allow_any_instance_of(Ci::Pipeline).to receive(:git_commit_message) { message } allow_any_instance_of(Ci::Pipeline).to receive(:git_commit_message) { message }
end end
   
it "skips builds creation if there is [ci skip] tag in commit message" do ci_messages.each do |ci_message|
commits = [{ message: message }] it "skips builds creation if the commit message is #{ci_message}" do
pipeline = execute(ref: 'refs/heads/master', commits = [{ message: ci_message }]
before: '00000000', pipeline = execute(ref: 'refs/heads/master',
after: project.commit.id, before: '00000000',
commits: commits) after: project.commit.id,
commits: commits)
   
expect(pipeline).to be_persisted expect(pipeline).to be_persisted
expect(pipeline.builds.any?).to be false expect(pipeline.builds.any?).to be false
expect(pipeline.status).to eq("skipped") expect(pipeline.status).to eq("skipped")
end end
it "skips builds creation if there is [skip ci] tag in commit message" do
commits = [{ message: messageFlip }]
pipeline = execute(ref: 'refs/heads/master',
before: '00000000',
after: project.commit.id,
commits: commits)
expect(pipeline).to be_persisted
expect(pipeline.builds.any?).to be false
expect(pipeline.status).to eq("skipped")
end end
   
it "skips builds creation if there is [CI SKIP] tag in commit message" do it "does not skips builds creation if there is no [ci skip] or [skip ci] tag in commit message" do
commits = [{ message: capMessage }] allow_any_instance_of(Ci::Pipeline).to receive(:git_commit_message) { "some message" }
pipeline = execute(ref: 'refs/heads/master',
before: '00000000',
after: project.commit.id,
commits: commits)
expect(pipeline).to be_persisted
expect(pipeline.builds.any?).to be false
expect(pipeline.status).to eq("skipped")
end
   
it "skips builds creation if there is [SKIP CI] tag in commit message" do commits = [{ message: "some message" }]
commits = [{ message: capMessageFlip }]
pipeline = execute(ref: 'refs/heads/master', pipeline = execute(ref: 'refs/heads/master',
before: '00000000', before: '00000000',
after: project.commit.id, after: project.commit.id,
commits: commits) commits: commits)
   
expect(pipeline).to be_persisted expect(pipeline).to be_persisted
expect(pipeline.builds.any?).to be false expect(pipeline.builds.first.name).to eq("rspec")
expect(pipeline.status).to eq("skipped")
end end
   
it "does not skips builds creation if there is no [ci skip] or [skip ci] tag in commit message" do it "does not skip builds creation if the commit message is nil" do
allow_any_instance_of(Ci::Pipeline).to receive(:git_commit_message) { "some message" } allow_any_instance_of(Ci::Pipeline).to receive(:git_commit_message) { nil }
   
commits = [{ message: "some message" }] commits = [{ message: nil }]
pipeline = execute(ref: 'refs/heads/master', pipeline = execute(ref: 'refs/heads/master',
before: '00000000', before: '00000000',
after: project.commit.id, after: project.commit.id,
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment