summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2017-05-08 12:47:21 +0200
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2017-06-20 15:32:29 +0200
commit64e09a1b35cc1897df7e46e73989c6e7013f6196 (patch)
treeb3536db28e29f337237bcbe413c29bbf66471cd0
parentbf57a7e80c44080dc7ec0fd774148afdae29cc31 (diff)
downloadgitlab-ce-64e09a1b35cc1897df7e46e73989c6e7013f6196.tar.gz
Fix pipeline status when allowed to fail jobs present
-rw-r--r--app/models/concerns/has_status.rb4
-rw-r--r--spec/services/ci/process_pipeline_service_spec.rb4
2 files changed, 7 insertions, 1 deletions
diff --git a/app/models/concerns/has_status.rb b/app/models/concerns/has_status.rb
index 3c9c6584e02..692bd1f9317 100644
--- a/app/models/concerns/has_status.rb
+++ b/app/models/concerns/has_status.rb
@@ -37,7 +37,9 @@ module HasStatus
end
def status
- all.pluck(status_sql).first
+ all.pluck(status_sql).first.tap do |status|
+ return 'success' if status == 'skipped' && all.failed_but_allowed.any?
+ end
end
def started_at
diff --git a/spec/services/ci/process_pipeline_service_spec.rb b/spec/services/ci/process_pipeline_service_spec.rb
index 1557cb3c938..efcaccc254e 100644
--- a/spec/services/ci/process_pipeline_service_spec.rb
+++ b/spec/services/ci/process_pipeline_service_spec.rb
@@ -62,6 +62,10 @@ describe Ci::ProcessPipelineService, '#execute', :services do
fail_running_or_pending
expect(builds_statuses).to eq %w(failed pending)
+
+ fail_running_or_pending
+
+ expect(pipeline.reload).to be_success
end
end