Fix builds scheduler when first build is allowed to fail
Before this fix when there was only one relevant, previous build and it failed, but was allowed to fail, entire build had been marked as skipped. Closes #3192
This commit is contained in:
parent
0ae7c95453
commit
8114786665
|
@ -1,11 +1,9 @@
|
|||
module Ci
|
||||
class Status
|
||||
def self.get_status(statuses)
|
||||
statuses.reject! { |status| status.try(&:allow_failure?) }
|
||||
|
||||
if statuses.none?
|
||||
'skipped'
|
||||
elsif statuses.all?(&:success?)
|
||||
elsif statuses.all? { |status| status.success? || status.ignored? }
|
||||
'success'
|
||||
elsif statuses.all?(&:pending?)
|
||||
'pending'
|
||||
|
|
|
@ -28,6 +28,18 @@ FactoryGirl.define do
|
|||
status 'canceled'
|
||||
end
|
||||
|
||||
trait :running do
|
||||
status 'running'
|
||||
end
|
||||
|
||||
trait :pending do
|
||||
status 'pending'
|
||||
end
|
||||
|
||||
trait :allowed_to_fail do
|
||||
allow_failure true
|
||||
end
|
||||
|
||||
after(:build) do |build, evaluator|
|
||||
build.project = build.commit.project
|
||||
end
|
||||
|
|
|
@ -13,5 +13,25 @@ describe Ci::Status do
|
|||
let(:builds) { [create(:ci_build, :success), create(:ci_build, :failed)] }
|
||||
it { is_expected.to eq 'failed' }
|
||||
end
|
||||
|
||||
context 'at least one running' do
|
||||
let(:builds) { [create(:ci_build, :success), create(:ci_build, :running)] }
|
||||
it { is_expected.to eq 'running' }
|
||||
end
|
||||
|
||||
context 'at least one pending' do
|
||||
let(:builds) { [create(:ci_build, :success), create(:ci_build, :pending)] }
|
||||
it { is_expected.to eq 'running' }
|
||||
end
|
||||
|
||||
context 'build success and failed but allowed to fail' do
|
||||
let(:builds) { [create(:ci_build, :success), create(:ci_build, :failed, :allowed_to_fail)] }
|
||||
it { is_expected.to eq 'success' }
|
||||
end
|
||||
|
||||
context 'one build failed but allowed to fail' do
|
||||
let(:builds) { [create(:ci_build, :failed, :allowed_to_fail)] }
|
||||
it { is_expected.to eq 'success' }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue