diff options
author | Robert Speicher <robert@gitlab.com> | 2015-10-26 14:02:21 +0000 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2015-10-26 15:04:27 +0100 |
commit | 5c2892bf35d23f61114b3f70d33151c1443ff970 (patch) | |
tree | e704b8e4f3c66b10742d7ea625641aa89fd03d0e | |
parent | bdfd23ee9084e37c9fc2c0a2b946f16ccb5a26b0 (diff) | |
download | gitlab-ce-5c2892bf35d23f61114b3f70d33151c1443ff970.tar.gz |
Merge branch 'fix-ci-badge' into 'master'
Fix CI badge
The previous code relied on having on ref stored in commit, however the ref was moved to the build.
Fixes #3104
See merge request !1690
-rw-r--r-- | CHANGELOG | 2 | ||||
-rw-r--r-- | app/models/ci/project_status.rb | 4 | ||||
-rw-r--r-- | app/services/ci/image_for_build_service.rb | 16 | ||||
-rw-r--r-- | spec/services/ci/image_for_build_service_spec.rb | 5 |
4 files changed, 12 insertions, 15 deletions
diff --git a/CHANGELOG b/CHANGELOG index d898064f4fd..0766d639dc8 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -7,6 +7,7 @@ v 8.1.1 - Fix 500 when editing CI service - Require CI jobs to be named - Fix CSS for runner status + - Fix CI badge v 8.1.0 - Ensure MySQL CI limits DB migrations occur after the fields have been created (Stan Hu) @@ -19,6 +20,7 @@ v 8.1.0 - Don't show "Add README" link in an empty repository if user doesn't have access to push (Stan Hu) - Fix error preventing displaying of commit data for a directory with a leading dot (Stan Hu) - Speed up load times of issue detail pages by roughly 1.5x + - Require CI jobs to be named - Fix CI rendering regressions - Allow developer to manage builds - If a merge request is to close an issue, show this on the issue page (Zeger-Jan van de Weg) diff --git a/app/models/ci/project_status.rb b/app/models/ci/project_status.rb index b66f1212f23..2d35aeac225 100644 --- a/app/models/ci/project_status.rb +++ b/app/models/ci/project_status.rb @@ -27,9 +27,5 @@ module Ci def human_status status end - - def last_commit_for_ref(ref) - commits.where(ref: ref).last - end end end diff --git a/app/services/ci/image_for_build_service.rb b/app/services/ci/image_for_build_service.rb index b95835ba093..b8d24193035 100644 --- a/app/services/ci/image_for_build_service.rb +++ b/app/services/ci/image_for_build_service.rb @@ -1,17 +1,15 @@ module Ci class ImageForBuildService def execute(project, params) - image_name = - if params[:sha] - commit = project.commits.find_by(sha: params[:sha]) - image_for_commit(commit) - elsif params[:ref] - commit = project.last_commit_for_ref(params[:ref]) - image_for_commit(commit) - else - 'build-unknown.svg' + sha = params[:sha] + sha ||= + if params[:ref] + project.gl_project.commit(params[:ref]).try(:sha) end + commit = project.commits.ordered.find_by(sha: sha) + image_name = image_for_commit(commit) + image_path = Rails.root.join('public/ci', image_name) OpenStruct.new( diff --git a/spec/services/ci/image_for_build_service_spec.rb b/spec/services/ci/image_for_build_service_spec.rb index d7242d684c6..cda7d0c4a51 100644 --- a/spec/services/ci/image_for_build_service_spec.rb +++ b/spec/services/ci/image_for_build_service_spec.rb @@ -4,8 +4,9 @@ module Ci describe ImageForBuildService do let(:service) { ImageForBuildService.new } let(:project) { FactoryGirl.create(:ci_project) } - let(:gl_project) { FactoryGirl.create(:empty_project, gitlab_ci_project: project) } - let(:commit) { FactoryGirl.create(:ci_commit, gl_project: gl_project, ref: 'master') } + let(:gl_project) { FactoryGirl.create(:project, gitlab_ci_project: project) } + let(:commit_sha) { gl_project.commit('master').sha } + let(:commit) { gl_project.ensure_ci_commit(commit_sha) } let(:build) { FactoryGirl.create(:ci_build, commit: commit) } describe :execute do |