summaryrefslogtreecommitdiff
path: root/tooling/merge_request_rspec_failure_rake_task.rb
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-04-15 06:09:30 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2021-04-15 06:09:30 +0000
commit17e561ffb82d134ccdee8dfb505d9cba7c311a4c (patch)
treed54b7d229b058a4080e1ae1d6d2d6290972b453d /tooling/merge_request_rspec_failure_rake_task.rb
parent1edce674dc65d54891f9a56dde344ae737c31313 (diff)
downloadgitlab-ce-17e561ffb82d134ccdee8dfb505d9cba7c311a4c.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'tooling/merge_request_rspec_failure_rake_task.rb')
-rw-r--r--tooling/merge_request_rspec_failure_rake_task.rb37
1 files changed, 37 insertions, 0 deletions
diff --git a/tooling/merge_request_rspec_failure_rake_task.rb b/tooling/merge_request_rspec_failure_rake_task.rb
new file mode 100644
index 00000000000..02ac38bee69
--- /dev/null
+++ b/tooling/merge_request_rspec_failure_rake_task.rb
@@ -0,0 +1,37 @@
+# frozen_string_literal: true
+
+require 'test_file_finder'
+require_relative './merge_request'
+
+module Tooling
+ class MergeRequestRspecFailureRakeTask < RSpec::Core::RakeTask
+ PROJECT_PATH = 'gitlab-org/gitlab'
+
+ def run_task(_verbose)
+ if pattern.empty?
+ puts "No rspec failures in the merge request."
+ return
+ end
+
+ super
+ end
+
+ def rspec_failures_on_merge_request
+ test_file_finder = TestFileFinder::FileFinder.new
+ test_file_finder.use TestFileFinder::MappingStrategies::GitlabMergeRequestRspecFailure.new(project_path: PROJECT_PATH, merge_request_iid: merge_request.iid)
+ test_file_finder.test_files
+ rescue TestFileFinder::TestReportError => e
+ abort e.message
+ end
+
+ private
+
+ def merge_request
+ @merge_request ||= Tooling::MergeRequest.for(branch: current_branch, project_path: PROJECT_PATH)
+ end
+
+ def current_branch
+ @current_branch ||= `git branch --show-current`.strip
+ end
+ end
+end