Commit d72cc7fc authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge branch 'jenkins_ci_status_handle_unstable_builds' of...

Merge branch 'jenkins_ci_status_handle_unstable_builds' of https://gitlab.com/chrisrohr/gitlab-ee into jenkins-tests
parents 2178647a dfc8560b
...@@ -3,6 +3,7 @@ v 7.14 ...@@ -3,6 +3,7 @@ v 7.14
- Don't send "Added to group" notifications when group is LDAP synched - Don't send "Added to group" notifications when group is LDAP synched
- Fix importing projects from GitHub Enterprise Edition. - Fix importing projects from GitHub Enterprise Edition.
- Automatic approver suggestions (based on an authority of the code) - Automatic approver suggestions (based on an authority of the code)
- Add support for Jenkins unstable status
v7.13.3 v7.13.3
- Merge community edition changes for version 7.13.3 - Merge community edition changes for version 7.13.3
......
...@@ -72,7 +72,7 @@ class JenkinsService < CiService ...@@ -72,7 +72,7 @@ class JenkinsService < CiService
if response.code == 200 if response.code == 200
# img.build-caption-status-icon for old jenkins version # img.build-caption-status-icon for old jenkins version
src = Nokogiri.parse(response).css('img.build-caption-status-icon,.build-caption>img').first.attributes['src'].value src = Nokogiri.parse(response).css('img.build-caption-status-icon,.build-caption>img').first.attributes['src'].value
if src =~ /blue\.png$/ if src =~ /(blue\.png|yellow\.png)$/
'success' 'success'
elsif src =~ /(red|aborted|yellow)\.png$/ elsif src =~ /(red|aborted|yellow)\.png$/
'failed' 'failed'
......
...@@ -26,6 +26,15 @@ describe JenkinsService do ...@@ -26,6 +26,15 @@ describe JenkinsService do
end end
describe 'commits methods' do describe 'commits methods' do
def status_body_for_icon(state)
body =<<eos
<h1 class="build-caption page-headline"><img style="width: 48px; height: 48px; " alt="Success" class="icon-#{state} icon-xlg" src="/static/855d7c3c/images/48x48/#{state}" tooltip="Success" title="Success">
Build #188
(Oct 15, 2014 9:45:21 PM)
</h1>
eos
end
before do before do
@service = JenkinsService.new @service = JenkinsService.new
allow(@service).to receive_messages( allow(@service).to receive_messages(
...@@ -33,19 +42,16 @@ describe JenkinsService do ...@@ -33,19 +42,16 @@ describe JenkinsService do
project_url: 'http://jenkins.gitlab.org/projects/2', project_url: 'http://jenkins.gitlab.org/projects/2',
token: 'verySecret' token: 'verySecret'
) )
body =<<eos
<h1 class="build-caption page-headline"><img style="width: 48px; height: 48px; " alt="Success" class="icon-blue icon-xlg" src="/static/855d7c3c/images/48x48/blue.png" tooltip="Success" title="Success">
Build #188
(Oct 15, 2014 9:45:21 PM)
</h1>
eos
stub_request(:get, "http://jenkins.gitlab.org/projects/2/scm/bySHA1/2ab7834c").
to_return(status: 200, body: body, headers: {})
end end
describe :commit_status do describe :commit_status do
it { expect(@service.commit_status("2ab7834c", 'master')).to eq("success") } statuses = {'blue.png' => 'success', 'yellow.png' => 'success', 'red.png' => 'failed', 'aborted.png' => 'failed', 'blue-anime.gif' => 'running', 'grey.png' => 'pending'}
statuses.each do |icon, state|
it "should have a status of #{state} when the icon #{icon} exists." do
stub_request(:get, "http://jenkins.gitlab.org/projects/2/scm/bySHA1/2ab7834c").to_return(status: 200, body: status_body_for_icon(icon), headers: {})
expect(@service.commit_status("2ab7834c", 'master')).to eq(state)
end
end
end end
describe :build_page do describe :build_page do
......
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