Commit 21dfaa00 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Show CI status on all pages where commits list is rendered

Signed-off-by: default avatarDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
parent 64ec7a3e
module CiStatusHelper
def ci_status_path(ci_commit)
ci_project_ref_commits_path(ci_commit.project, ci_commit.ref, ci_commit)
end
def ci_status_icon(ci_commit)
icon_name =
case ci_commit.status
when 'success'
'check'
when 'failed'
'close'
when 'running', 'pending'
'clock-o'
else
'circle'
end
icon(icon_name)
end
def ci_status_color(ci_commit)
case ci_commit.status
when 'success'
'green'
when 'failed'
'red'
when 'running', 'pending'
'yellow'
else
'gray'
end
end
end
......@@ -135,7 +135,7 @@ module CommitsHelper
# size: size of the avatar image in px
def commit_person_link(commit, options = {})
user = commit.send(options[:source])
source_name = clean(commit.send "#{options[:source]}_name".to_sym)
source_email = clean(commit.send "#{options[:source]}_email".to_sym)
......
......@@ -735,4 +735,8 @@ class Project < ActiveRecord::Base
errors.add(:base, 'Failed create wiki')
false
end
def ci_commit(sha)
gitlab_ci_project.commits.find_by(sha: sha) if gitlab_ci?
end
end
......@@ -4,7 +4,11 @@
- notes = commit.notes
- note_count = notes.user.count
= cache [project.id, commit.id, note_count] do
- ci_commit = project.ci_commit(commit.sha)
- cache_key = [project.id, commit.id, note_count]
- cache_key.push(ci_commit.status) if ci_commit
= cache(cache_key) do
%li.commit.js-toggle-container
.commit-row-title
%strong.str-truncated
......@@ -13,6 +17,10 @@
%a.text-expander.js-toggle-button ...
.pull-right
- if ci_commit
= link_to ci_status_path(ci_commit), class: "c#{ci_status_color(ci_commit)}" do
= ci_status_icon(ci_commit)
&nbsp;
= link_to commit.short_id, namespace_project_commit_path(project.namespace, project, commit), class: "commit_short_id"
.notes_count
......
......@@ -401,4 +401,14 @@ describe Project do
it { should eq "http://localhost#{avatar_path}" }
end
end
describe :ci_commit do
let(:project) { create :project }
let(:ci_project) { create :ci_project, gl_project: project }
let(:commit) { create :ci_commit, project: ci_project }
before { project.create_gitlab_ci_service(active: true) }
it { expect(project.ci_commit(commit.sha)).to eq(commit) }
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment