diff options
author | Simon Welsh <simon@simon.geek.nz> | 2016-06-23 20:09:54 +1000 |
---|---|---|
committer | Simon Welsh <simon@simon.geek.nz> | 2016-06-25 11:38:06 +1000 |
commit | 0550f2a5e7d8a7ed65632190b8febe2a9e01d6a0 (patch) | |
tree | 114d3ce610fdc1bdd4a4fec7d68d1b8eab14be29 | |
parent | 2fc91c48659b84375173b038b4e7957e56294aa4 (diff) | |
download | gitlab-ce-0550f2a5e7d8a7ed65632190b8febe2a9e01d6a0.tar.gz |
Add support for "skip ci" too
-rw-r--r-- | CHANGELOG | 2 | ||||
-rw-r--r-- | app/models/ci/pipeline.rb | 2 | ||||
-rw-r--r-- | doc/ci/yaml/README.md | 4 | ||||
-rw-r--r-- | spec/services/create_commit_builds_service_spec.rb | 33 |
4 files changed, 36 insertions, 5 deletions
diff --git a/CHANGELOG b/CHANGELOG index eb94f963982..e257f2cf3a2 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -11,7 +11,7 @@ v 8.10.0 (unreleased) - Fix changing issue state columns in milestone view - Fix user creation with stronger minimum password requirements !4054 (nathan-pmt) - Add API endpoint for a group issues !4520 (mahcsig) - - Allow [ci skip] to be in any case. !4785 (simon_w) + - Allow [ci skip] to be in any case and allow [skip ci]. !4785 (simon_w) v 8.9.1 - Fix merge requests project settings help link anchor diff --git a/app/models/ci/pipeline.rb b/app/models/ci/pipeline.rb index 89434abca05..10324bf2257 100644 --- a/app/models/ci/pipeline.rb +++ b/app/models/ci/pipeline.rb @@ -163,7 +163,7 @@ module Ci end def skip_ci? - git_commit_message =~ /(\[ci skip\])/i if git_commit_message + git_commit_message =~ /\[(ci skip|skip ci)\]/i if git_commit_message end def environments diff --git a/doc/ci/yaml/README.md b/doc/ci/yaml/README.md index ca3bf37f8ad..d2d1b04f893 100644 --- a/doc/ci/yaml/README.md +++ b/doc/ci/yaml/README.md @@ -1034,8 +1034,8 @@ You can find the link under `/ci/lint` of your gitlab instance. ## Skipping builds -If your commit message contains `[ci skip]`, using any capitalization, the -commit will be created but the builds will be skipped. +If your commit message contains `[ci skip]` or `[skip ci]`, using any +capitalization, the commit will be created but the builds will be skipped. ## Examples diff --git a/spec/services/create_commit_builds_service_spec.rb b/spec/services/create_commit_builds_service_spec.rb index 2255945a1ad..309213bd44c 100644 --- a/spec/services/create_commit_builds_service_spec.rb +++ b/spec/services/create_commit_builds_service_spec.rb @@ -83,7 +83,9 @@ describe CreateCommitBuildsService, services: true do context 'when commit contains a [ci skip] directive' do let(:message) { "some message[ci skip]" } + let(:messageFlip) { "some message[skip ci]" } let(:capMessage) { "some message[CI SKIP]" } + let(:capMessageFlip) { "some message[SKIP CI]" } before do allow_any_instance_of(Ci::Pipeline).to receive(:git_commit_message) { message } @@ -97,6 +99,21 @@ describe CreateCommitBuildsService, services: true do after: '31das312', 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: messageFlip }] + pipeline = service.execute(project, user, + ref: 'refs/tags/0_1', + before: '00000000', + after: '31das312', + commits: commits + ) + expect(pipeline).to be_persisted expect(pipeline.builds.any?).to be false expect(pipeline.status).to eq("skipped") @@ -116,7 +133,21 @@ describe CreateCommitBuildsService, services: true do expect(pipeline.status).to eq("skipped") end - it "does not skips builds creation if there is no [ci skip] tag in commit message" do + it "skips builds creation if there is [SKIP CI] tag in commit message" do + commits = [{ message: capMessageFlip }] + pipeline = service.execute(project, user, + ref: 'refs/tags/0_1', + before: '00000000', + after: '31das312', + commits: commits + ) + + expect(pipeline).to be_persisted + expect(pipeline.builds.any?).to be false + expect(pipeline.status).to eq("skipped") + end + + it "does not skips builds creation if there is no [ci skip] or [skip ci] tag in commit message" do allow_any_instance_of(Ci::Pipeline).to receive(:git_commit_message) { "some message" } commits = [{ message: "some message" }] |