From c80abb40fcb3b2dc35c62aa30d374f2889247746 Mon Sep 17 00:00:00 2001 From: Steve Azzopardi Date: Thu, 6 Sep 2018 12:21:58 +0200 Subject: Add retried jobs to pipeline stages closes https://gitlab.com/gitlab-org/gitlab-ce/issues/50461 --- app/controllers/projects/pipelines_controller.rb | 2 +- app/serializers/stage_entity.rb | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) (limited to 'app') diff --git a/app/controllers/projects/pipelines_controller.rb b/app/controllers/projects/pipelines_controller.rb index 2cc721dfeec..5b2091d68f8 100644 --- a/app/controllers/projects/pipelines_controller.rb +++ b/app/controllers/projects/pipelines_controller.rb @@ -96,7 +96,7 @@ class Projects::PipelinesController < Projects::ApplicationController render json: StageSerializer .new(project: @project, current_user: @current_user) - .represent(@stage, details: true) + .represent(@stage, details: true, retried: params[:retried]) end # TODO: This endpoint is used by mini-pipeline-graph diff --git a/app/serializers/stage_entity.rb b/app/serializers/stage_entity.rb index ca8fa7e7877..029dd3d0684 100644 --- a/app/serializers/stage_entity.rb +++ b/app/serializers/stage_entity.rb @@ -19,6 +19,12 @@ class StageEntity < Grape::Entity latest_statuses end + expose :retried, + if: -> (_, opts) { opts[:retried] }, + with: JobEntity do |stage| + retried_statuses + end + expose :detailed_status, as: :status, with: DetailedStatusEntity expose :path do |stage| @@ -48,9 +54,19 @@ class StageEntity < Grape::Entity @grouped_statuses ||= stage.statuses.latest_ordered.group_by(&:status) end + def grouped_retried_statuses + @grouped_retried_statuses ||= stage.statuses.retried_ordered.group_by(&:status) + end + def latest_statuses HasStatus::ORDERED_STATUSES.map do |ordered_status| grouped_statuses.fetch(ordered_status, []) end.flatten end + + def retried_statuses + HasStatus::ORDERED_STATUSES.map do |ordered_status| + grouped_retried_statuses.fetch(ordered_status, []) + end.flatten + end end -- cgit v1.2.3