summaryrefslogtreecommitdiff
path: root/lib/gitlab/ci/reports
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-04-21 15:21:10 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-04-21 15:21:10 +0000
commite33f87ac0fabaab468ce4b457996cc0f1b1bb648 (patch)
tree8bf0de72a9acac014cfdaddab7d463b208294af2 /lib/gitlab/ci/reports
parent5baf990db20a75078684702782c24399ef9eb0fa (diff)
downloadgitlab-ce-e33f87ac0fabaab468ce4b457996cc0f1b1bb648.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/gitlab/ci/reports')
-rw-r--r--lib/gitlab/ci/reports/terraform_reports.rb27
-rw-r--r--lib/gitlab/ci/reports/test_reports.rb6
-rw-r--r--lib/gitlab/ci/reports/test_suite.rb19
3 files changed, 49 insertions, 3 deletions
diff --git a/lib/gitlab/ci/reports/terraform_reports.rb b/lib/gitlab/ci/reports/terraform_reports.rb
new file mode 100644
index 00000000000..f955d007daf
--- /dev/null
+++ b/lib/gitlab/ci/reports/terraform_reports.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module Ci
+ module Reports
+ class TerraformReports
+ attr_reader :plans
+
+ def initialize
+ @plans = {}
+ end
+
+ def pick(keys)
+ terraform_plans = plans.select do |key|
+ keys.include?(key)
+ end
+
+ { plans: terraform_plans }
+ end
+
+ def add_plan(name, plan)
+ plans[name] = plan
+ end
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/ci/reports/test_reports.rb b/lib/gitlab/ci/reports/test_reports.rb
index 72323c4343d..86ba725c71e 100644
--- a/lib/gitlab/ci/reports/test_reports.rb
+++ b/lib/gitlab/ci/reports/test_reports.rb
@@ -42,6 +42,12 @@ module Gitlab
self
end
+ def suite_errors
+ test_suites.each_with_object({}) do |(name, suite), errors|
+ errors[suite.name] = suite.suite_error if suite.suite_error
+ end
+ end
+
TestCase::STATUS_TYPES.each do |status_type|
define_method("#{status_type}_count") do
# rubocop: disable CodeReuse/ActiveRecord
diff --git a/lib/gitlab/ci/reports/test_suite.rb b/lib/gitlab/ci/reports/test_suite.rb
index cf43c5313c0..8bbf2e0f6cf 100644
--- a/lib/gitlab/ci/reports/test_suite.rb
+++ b/lib/gitlab/ci/reports/test_suite.rb
@@ -7,6 +7,7 @@ module Gitlab
attr_reader :name
attr_reader :test_cases
attr_reader :total_time
+ attr_reader :suite_error
def initialize(name = nil)
@name = name
@@ -25,12 +26,16 @@ module Gitlab
# rubocop: disable CodeReuse/ActiveRecord
def total_count
+ return 0 if suite_error
+
test_cases.values.sum(&:count)
end
# rubocop: enable CodeReuse/ActiveRecord
def total_status
- if failed_count > 0 || error_count > 0
+ if suite_error
+ TestCase::STATUS_ERROR
+ elsif failed_count > 0 || error_count > 0
TestCase::STATUS_FAILED
else
TestCase::STATUS_SUCCESS
@@ -49,14 +54,22 @@ module Gitlab
TestCase::STATUS_TYPES.each do |status_type|
define_method("#{status_type}") do
- test_cases[status_type] || {}
+ return {} if suite_error || test_cases[status_type].nil?
+
+ test_cases[status_type]
end
define_method("#{status_type}_count") do
- test_cases[status_type]&.length.to_i
+ return 0 if suite_error || test_cases[status_type].nil?
+
+ test_cases[status_type].length
end
end
+ def set_suite_error(msg)
+ @suite_error = msg
+ end
+
private
def existing_key?(test_case)