summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Van Landuyt <bob@gitlab.com>2017-03-14 20:46:34 +0100
committerBob Van Landuyt <bob@gitlab.com>2017-03-16 12:31:27 +0100
commit21c5270a39022d447b63aa0ceb527863e67804fd (patch)
treeb9254733799a87b3fd6926f356a1e271a30c64c4
parentc4956091e182364a3e7bafecf707a3e6d6e725e2 (diff)
downloadgitlab-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.rb2
-rw-r--r--spec/models/ci/pipeline_status_spec.rb8
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