diff options
author | Dmitriy Zaporozhets <dzaporozhets@gitlab.com> | 2014-10-02 16:25:19 +0000 |
---|---|---|
committer | Dmitriy Zaporozhets <dzaporozhets@gitlab.com> | 2014-10-02 16:25:19 +0000 |
commit | 4e96c84e587c0dc70225127e03bc531949f5dd88 (patch) | |
tree | b506fa0121d1c98f632b8cd85f49ec09ffbf9316 | |
parent | 1a09a805ea9c7c534bc868dfa5881b57566d508c (diff) | |
parent | 8e33f9460c6f98df089eb367b96d9a1fc91c5d52 (diff) | |
download | gitlab-ce-4e96c84e587c0dc70225127e03bc531949f5dd88.tar.gz |
Merge branch 'show-build-coverage-in-mr' into 'master'
Show build coverage in MR

See merge request !1148
4 files changed, 37 insertions, 5 deletions
diff --git a/app/assets/javascripts/merge_request.js.coffee b/app/assets/javascripts/merge_request.js.coffee index 59e53b69e3d..1c391c61bba 100644 --- a/app/assets/javascripts/merge_request.js.coffee +++ b/app/assets/javascripts/merge_request.js.coffee @@ -40,6 +40,8 @@ class MergeRequest if @opts.ci_enable $.get @opts.url_to_ci_check, (data) => this.showCiState data.status + if data.coverage + this.showCiCoverage data.coverage , 'json' bindEvents: -> @@ -102,7 +104,11 @@ class MergeRequest when "running", "pending" $('.mr-state-widget').addClass("panel-warning") - + showCiCoverage: (coverage) -> + cov_html = $('<span>') + cov_html.addClass('ci-coverage') + cov_html.text('Coverage ' + coverage + '%') + $('.ci_widget:visible').append(cov_html) loadDiff: (event) -> $.ajax diff --git a/app/assets/stylesheets/sections/merge_requests.scss b/app/assets/stylesheets/sections/merge_requests.scss index 3db6da2a9f9..acaad519778 100644 --- a/app/assets/stylesheets/sections/merge_requests.scss +++ b/app/assets/stylesheets/sections/merge_requests.scss @@ -113,6 +113,10 @@ margin-bottom: 0; } } + + .ci-coverage { + float: right; + } } .merge-request-show-labels .label { diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb index 2667cc7a4f7..16bb3a5476e 100644 --- a/app/controllers/projects/merge_requests_controller.rb +++ b/app/controllers/projects/merge_requests_controller.rb @@ -150,8 +150,17 @@ class Projects::MergeRequestsController < Projects::ApplicationController end def ci_status - status = @merge_request.source_project.ci_service.commit_status(merge_request.last_commit.sha) - response = {status: status} + ci_service = @merge_request.source_project.ci_service + status = ci_service.commit_status(merge_request.last_commit.sha) + + if ci_service.respond_to?(:commit_coverage) + coverage = ci_service.commit_coverage(merge_request.last_commit.sha) + end + + response = { + status: status, + coverage: coverage + } render json: response end diff --git a/app/models/project_services/gitlab_ci_service.rb b/app/models/project_services/gitlab_ci_service.rb index 0f327e75289..4a19ca2f655 100644 --- a/app/models/project_services/gitlab_ci_service.rb +++ b/app/models/project_services/gitlab_ci_service.rb @@ -31,8 +31,13 @@ class GitlabCiService < CiService project_url + "/builds/#{sha}/status.json?token=#{token}" end - def commit_status sha - response = HTTParty.get(commit_status_path(sha), verify: false) + def get_ci_build(sha) + @ci_builds ||= {} + @ci_builds[sha] ||= HTTParty.get(commit_status_path(sha), verify: false) + end + + def commit_status(sha) + response = get_ci_build(sha) if response.code == 200 and response["status"] response["status"] @@ -41,6 +46,14 @@ class GitlabCiService < CiService end end + def commit_coverage(sha) + response = get_ci_build(sha) + + if response.code == 200 and response["coverage"] + response["coverage"] + end + end + def build_page sha project_url + "/builds/#{sha}" end |