summaryrefslogtreecommitdiff
path: root/app/models/project_services/builds_email_service.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/project_services/builds_email_service.rb')
-rw-r--r--app/models/project_services/builds_email_service.rb26
1 files changed, 26 insertions, 0 deletions
diff --git a/app/models/project_services/builds_email_service.rb b/app/models/project_services/builds_email_service.rb
index 54da4d74fc5..fa66e5864b8 100644
--- a/app/models/project_services/builds_email_service.rb
+++ b/app/models/project_services/builds_email_service.rb
@@ -42,6 +42,18 @@ class BuildsEmailService < Service
end
end
+ def can_test?
+ project.builds.count > 0
+ end
+
+ def disabled_title
+ "Please setup a build on your repository."
+ end
+
+ def test_data(project = nil, user = nil)
+ Gitlab::DataBuilder::Build.build(project.builds.last)
+ end
+
def fields
[
{ type: 'textarea', name: 'recipients', placeholder: 'Emails separated by comma' },
@@ -50,6 +62,20 @@ class BuildsEmailService < Service
]
end
+ def test(data)
+ begin
+ # bypass build status verification when testing
+ data[:build_status] = "failed"
+ data[:build_allow_failure] = false
+
+ result = execute(data)
+ rescue StandardError => error
+ return { success: false, result: error }
+ end
+
+ { success: true, result: result }
+ end
+
def should_build_be_notified?(data)
case data[:build_status]
when 'success'