diff options
author | Bob Van Landuyt <bob@gitlab.com> | 2017-03-14 20:46:34 +0100 |
---|---|---|
committer | Bob Van Landuyt <bob@gitlab.com> | 2017-03-16 12:31:27 +0100 |
commit | 21c5270a39022d447b63aa0ceb527863e67804fd (patch) | |
tree | b9254733799a87b3fd6926f356a1e271a30c64c4 | |
parent | c4956091e182364a3e7bafecf707a3e6d6e725e2 (diff) | |
download | gitlab-ce-21c5270a39022d447b63aa0ceb527863e67804fd.tar.gz |
Don't try to load status when there is no commit
This could happen when the repository is missing.
In which case cache needs to be cleared
-rw-r--r-- | app/models/ci/pipeline_status.rb | 2 | ||||
-rw-r--r-- | spec/models/ci/pipeline_status_spec.rb | 8 |
2 files changed, 10 insertions, 0 deletions
diff --git a/app/models/ci/pipeline_status.rb b/app/models/ci/pipeline_status.rb index c41c43868f9..048047d0e34 100644 --- a/app/models/ci/pipeline_status.rb +++ b/app/models/ci/pipeline_status.rb @@ -37,6 +37,8 @@ module Ci end def load_from_commit + return unless commit + self.sha = commit.sha self.status = commit.status end diff --git a/spec/models/ci/pipeline_status_spec.rb b/spec/models/ci/pipeline_status_spec.rb index 06726a83fe2..bc5b71666c2 100644 --- a/spec/models/ci/pipeline_status_spec.rb +++ b/spec/models/ci/pipeline_status_spec.rb @@ -79,6 +79,14 @@ describe Ci::PipelineStatus do expect(pipeline_status.status).to eq('success') expect(pipeline_status.sha).to eq(project.commit.sha) end + + it "doesn't fail for an empty project" do + status_for_empty_commit = described_class.new(create(:empty_project)) + + status_for_empty_commit.load_status + + expect(status_for_empty_commit).to be_loaded + end end describe "#store_in_cache", :redis do |