diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-12-11 18:15:12 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-12-11 18:15:12 +0300 |
commit | d83a3edd4416e93f2815815c1be4ee0a2755a3c5 (patch) | |
tree | 670863f034908a1832b1c5db228b9ae567e4cf7e /app/services | |
parent | ee2024d964d1742a8ec01da89e0b34351c9303ab (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/ci/generate_coverage_reports_service.rb | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/app/services/ci/generate_coverage_reports_service.rb b/app/services/ci/generate_coverage_reports_service.rb index 8beecb79fd9..e059f8acda6 100644 --- a/app/services/ci/generate_coverage_reports_service.rb +++ b/app/services/ci/generate_coverage_reports_service.rb @@ -9,19 +9,26 @@ module Ci class GenerateCoverageReportsService < CompareReportsBaseService def execute(base_pipeline, head_pipeline) merge_request = MergeRequest.find_by_id(params[:id]) + code_coverage_artifact = head_pipeline.pipeline_artifacts.find_by_file_type(:code_coverage) + return error_response(base_pipeline, head_pipeline) unless code_coverage_artifact && merge_request + { status: :parsed, key: key(base_pipeline, head_pipeline), - data: head_pipeline.pipeline_artifacts.find_by_file_type(:code_coverage).present.for_files(merge_request.new_paths) + data: code_coverage_artifact.present.for_files(merge_request.new_paths) } rescue StandardError => e - Gitlab::ErrorTracking.track_exception( - e, - project_id: project.id, - base_pipeline_id: base_pipeline&.id, - head_pipeline_id: head_pipeline&.id - ) + track_exception(e, base_pipeline, head_pipeline) + error_response(base_pipeline, head_pipeline) + end + + def latest?(base_pipeline, head_pipeline, data) + data&.fetch(:key, nil) == key(base_pipeline, head_pipeline) + end + private + + def error_response(base_pipeline, head_pipeline) { status: :error, key: key(base_pipeline, head_pipeline), @@ -29,12 +36,15 @@ module Ci } end - def latest?(base_pipeline, head_pipeline, data) - data&.fetch(:key, nil) == key(base_pipeline, head_pipeline) + def track_exception(error, base_pipeline, head_pipeline) + Gitlab::ErrorTracking.track_exception( + error, + project_id: project.id, + base_pipeline_id: base_pipeline&.id, + head_pipeline_id: head_pipeline&.id + ) end - private - def key(base_pipeline, head_pipeline) [ base_pipeline&.id, last_update_timestamp(base_pipeline), |