Commit fe6c33d3 authored by Shinya Maeda's avatar Shinya Maeda

Fix retry option doesn't work in Merge Trains

This commit fixes the outstanding bug that
retry option doesn't work in Merge Trains.
parent 4a2dc471
......@@ -8,6 +8,7 @@ module Types
connection_type_class(Types::CountableConnectionType)
authorize :read_pipeline
present_using ::Ci::PipelinePresenter
expose_permissions Types::PermissionTypes::Ci::Pipeline
......
......@@ -367,7 +367,7 @@ module Ci
def detailed_status(current_user)
Gitlab::Ci::Status::Build::Factory
.new(self, current_user)
.new(self.present, current_user)
.fabricate!
end
......
......@@ -960,7 +960,7 @@ module Ci
def detailed_status(current_user)
Gitlab::Ci::Status::Pipeline::Factory
.new(self, current_user)
.new(self.present, current_user)
.fabricate!
end
......
......@@ -50,3 +50,5 @@ module Ci
end
end
end
Ci::BuildPresenter.prepend_if_ee('EE::Ci::BuildPresenter')
---
title: Fix retry option does not work in Merge Trains
merge_request: 52463
author:
type: fixed
......@@ -131,10 +131,6 @@ module EE
requirements_report
end
def retryable?
!merge_train_pipeline? && super
end
def ci_secrets_management_available?
return false unless project
......
......@@ -89,10 +89,6 @@ module EE
tag? && project_has_subscriptions?
end
def retryable?
!merge_train_pipeline? && super
end
def batch_lookup_report_artifact_for_file_type(file_type)
return unless available_licensed_report_type?(file_type)
......
# frozen_string_literal: true
module EE
module Ci
module BuildPresenter
extend ActiveSupport::Concern
def retryable?
!merge_train_pipeline? && super
end
end
end
end
......@@ -30,6 +30,10 @@ module EE
job_artifact.job.degradation_threshold
end
end
def retryable?
!merge_train_pipeline? && super
end
end
end
end
......@@ -468,12 +468,6 @@ RSpec.describe Ci::Build do
it { is_expected.to be true }
end
context 'with pipeline for merge train' do
let(:merge_request) { create(:merge_request, :on_train, :with_merge_train_pipeline) }
it { is_expected.to be false }
end
end
describe ".license_scan" do
......
......@@ -463,12 +463,6 @@ RSpec.describe Ci::Pipeline do
it { is_expected.to be true }
end
context 'with pipeline for merge train' do
let(:merge_request) { create(:merge_request, :on_train, :with_merge_train_pipeline) }
it { is_expected.to be false }
end
end
describe '#merge_train_pipeline?' do
......
......@@ -14,4 +14,26 @@ RSpec.describe Ci::BuildPresenter do
'Only users with permission may successfully run this job.'
end
end
describe '#retryable?' do
subject { presenter.retryable? }
let_it_be(:build) { create(:ci_build, :canceled) }
context 'when the build exists in a pipeline for merge train' do
before do
allow(build).to receive(:merge_train_pipeline?) { true }
end
it { is_expected.to be false }
end
context 'when the build does not exist in a pipeline for merge train' do
before do
allow(build).to receive(:merge_train_pipeline?) { false }
end
it { is_expected.to be true }
end
end
end
......@@ -188,4 +188,21 @@ RSpec.describe Ci::PipelinePresenter do
end
end
end
describe '#retryable?' do
subject { presenter.retryable? }
let!(:build) { create(:ci_build, :canceled, pipeline: pipeline) }
context 'with pipeline for merge train' do
let(:pipeline) { merge_request.all_pipelines.last }
let(:merge_request) { create(:merge_request, :on_train, :with_merge_train_pipeline) }
it { is_expected.to be false }
end
context 'with branch pipeline' do
it { is_expected.to be true }
end
end
end
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