Commit 600d6eef authored by Valery Sizov's avatar Valery Sizov

Fix CI status in the MR page

parent 1eb3dde4
...@@ -69,14 +69,6 @@ class BuildkiteService < CiService ...@@ -69,14 +69,6 @@ class BuildkiteService < CiService
"#{project_url}/builds?commit=#{sha}" "#{project_url}/builds?commit=#{sha}"
end end
def builds_path
"#{project_url}/builds?branch=#{project.default_branch}"
end
def status_img_path
"#{buildkite_endpoint('badge')}/#{status_token}.svg"
end
def title def title
'Buildkite' 'Buildkite'
end end
......
...@@ -135,20 +135,6 @@ class DroneCiService < CiService ...@@ -135,20 +135,6 @@ class DroneCiService < CiService
commit_page(sha, ref) commit_page(sha, ref)
end end
def builds_path
url = [drone_url, "#{project.namespace.path}/#{project.path}"]
URI.join(*url).to_s
end
def status_img_path
url = [drone_url,
"api/badges/#{project.namespace.path}/#{project.path}/status.svg",
"?branch=#{URI::encode(project.default_branch)}"]
URI.join(*url).to_s
end
def title def title
'Drone CI' 'Drone CI'
end end
......
...@@ -58,24 +58,13 @@ class GitlabCiService < CiService ...@@ -58,24 +58,13 @@ class GitlabCiService < CiService
service_hook.execute(data) service_hook.execute(data)
end end
def commit_status_path(sha, ref) def get_ci_commit(sha, ref)
URI::encode(project_url + "/refs/#{ref}/commits/#{sha}/status.json?token=#{token}") Ci::Project.find(project.gitlab_ci_project).commits.find_by_sha_and_ref!(sha, ref)
end
def get_ci_build(sha, ref)
@ci_builds ||= {}
@ci_builds[sha] ||= HTTParty.get(commit_status_path(sha, ref), verify: false)
end end
def commit_status(sha, ref) def commit_status(sha, ref)
response = get_ci_build(sha, ref) get_ci_commit(sha, ref).status
rescue ActiveRecord::RecordNotFound
if response.code == 200 and response["status"]
response["status"]
else
:error
end
rescue Errno::ECONNREFUSED
:error :error
end end
...@@ -101,25 +90,13 @@ class GitlabCiService < CiService ...@@ -101,25 +90,13 @@ class GitlabCiService < CiService
end end
def commit_coverage(sha, ref) def commit_coverage(sha, ref)
response = get_ci_build(sha, ref) get_ci_commit(sha, ref).coverage
rescue ActiveRecord::RecordNotFound
if response.code == 200 and response["coverage"] :error
response["coverage"]
end
rescue Errno::ECONNREFUSED
nil
end end
def build_page(sha, ref) def build_page(sha, ref)
URI::encode(project_url + "/refs/#{ref}/commits/#{sha}") Ci::RoutesHelper.ci_project_ref_commits_path(project.gitlab_ci_project, ref, sha)
end
def builds_path
project_url + "?ref=" + project.default_branch
end
def status_img_path
project_url + "/status.png?ref=" + project.default_branch
end end
def title def title
......
...@@ -63,19 +63,5 @@ describe BuildkiteService do ...@@ -63,19 +63,5 @@ describe BuildkiteService do
) )
end end
end end
describe :builds_page do
it 'returns the correct path to the builds page' do
expect(@service.builds_path).to eq(
'https://buildkite.com/account-name/example-project/builds?branch=default-brancho'
)
end
end
describe :status_img_path do
it 'returns the correct path to the status image' do
expect(@service.status_img_path).to eq('https://badge.buildkite.com/secret-sauce-status-token.svg')
end
end
end end
end end
...@@ -55,22 +55,19 @@ describe GitlabCiService do ...@@ -55,22 +55,19 @@ describe GitlabCiService do
describe 'commits methods' do describe 'commits methods' do
before do before do
@ci_project = create(:ci_project)
@service = GitlabCiService.new @service = GitlabCiService.new
allow(@service).to receive_messages( allow(@service).to receive_messages(
service_hook: true, service_hook: true,
project_url: 'http://ci.gitlab.org/projects/2', project_url: 'http://ci.gitlab.org/projects/2',
token: 'verySecret' token: 'verySecret',
project: @ci_project.gl_project
) )
end end
describe :commit_status_path do
it { expect(@service.commit_status_path("2ab7834c", 'master')).to eq("http://ci.gitlab.org/projects/2/refs/master/commits/2ab7834c/status.json?token=verySecret")}
it { expect(@service.commit_status_path("issue#2", 'master')).to eq("http://ci.gitlab.org/projects/2/refs/master/commits/issue%232/status.json?token=verySecret")}
end
describe :build_page do describe :build_page do
it { expect(@service.build_page("2ab7834c", 'master')).to eq("http://ci.gitlab.org/projects/2/refs/master/commits/2ab7834c")} it { expect(@service.build_page("2ab7834c", 'master')).to eq("/ci/projects/#{@ci_project.id}/refs/master/commits/2ab7834c")}
it { expect(@service.build_page("issue#2", 'master')).to eq("http://ci.gitlab.org/projects/2/refs/master/commits/issue%232")} it { expect(@service.build_page("issue#2", 'master')).to eq("/ci/projects/#{@ci_project.id}/refs/master/commits/issue%232")}
end end
describe "execute" do describe "execute" 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