diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-09-21 07:49:18 +0000 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-09-21 07:49:18 +0000 |
commit | 8bb3215d543db5a7905c1322cf584276a4f58145 (patch) | |
tree | 70f85ecbc621ca7bb898dd7657d8eb1002a420af | |
parent | 46173ec8ce167c6ecb6ae9bf3b41bb3d3968f948 (diff) | |
parent | 8671343b65810b983d2c8ea37b3123abd620c093 (diff) | |
download | gitlab-ce-8bb3215d543db5a7905c1322cf584276a4f58145.tar.gz |
Merge branch 'fail-ci-builds-without-yml' into 'master'
Fail ci builds without yml
Fix for https://gitlab.com/gitlab-org/gitlab-ce/issues/2551
See merge request !1349
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | app/models/ci/commit.rb | 2 | ||||
-rw-r--r-- | spec/services/ci/create_commit_service_spec.rb | 13 |
3 files changed, 15 insertions, 1 deletions
diff --git a/CHANGELOG b/CHANGELOG index cb3794f7cb6..94ce0f50d35 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -43,6 +43,7 @@ v 8.0.0 (unreleased) - Retrieving oauth token with LDAP credentials - Load Application settings from running database unless env var USE_DB=false - Added Drone CI integration (Kirill Zaitsev) + - Fail builds if no .gitlab-ci.yml is found - Refactored service API and added automatically service docs generator (Kirill Zaitsev) - Added web_url key project hook_attrs (Kirill Zaitsev) - Add ability to get user information by ID of an SSH key via the API diff --git a/app/models/ci/commit.rb b/app/models/ci/commit.rb index 23cd47dfe37..f102d0a7679 100644 --- a/app/models/ci/commit.rb +++ b/app/models/ci/commit.rb @@ -236,7 +236,7 @@ module Ci end def config_processor - @config_processor ||= Ci::GitlabCiYamlProcessor.new(push_data[:ci_yaml_file] || project.generated_yaml_config) + @config_processor ||= Ci::GitlabCiYamlProcessor.new(push_data[:ci_yaml_file]) rescue Ci::GitlabCiYamlProcessor::ValidationError => e save_yaml_error(e.message) nil diff --git a/spec/services/ci/create_commit_service_spec.rb b/spec/services/ci/create_commit_service_spec.rb index 38d9943765a..84ab0a615dd 100644 --- a/spec/services/ci/create_commit_service_spec.rb +++ b/spec/services/ci/create_commit_service_spec.rb @@ -50,6 +50,19 @@ module Ci end end + it 'fails commits without .gitlab-ci.yml' do + result = service.execute(project, + ref: 'refs/heads/0_1', + before: '00000000', + after: '31das312', + ci_yaml_file: config, + commits: [ { message: 'Message' } ] + ) + expect(result).to be_persisted + expect(result.builds.any?).to be_falsey + expect(result.status).to eq('failed') + end + describe :ci_skip? do it "skips builds creation if there is [ci skip] tag in commit message" do commits = [{ message: "some message[ci skip]" }] |