Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'tooling/bin/qa/check_if_qa_only_spec_changes')
-rwxr-xr-xtooling/bin/qa/check_if_qa_only_spec_changes22
1 files changed, 22 insertions, 0 deletions
diff --git a/tooling/bin/qa/check_if_qa_only_spec_changes b/tooling/bin/qa/check_if_qa_only_spec_changes
new file mode 100755
index 00000000000..5b9166b41fe
--- /dev/null
+++ b/tooling/bin/qa/check_if_qa_only_spec_changes
@@ -0,0 +1,22 @@
+#!/usr/bin/env ruby
+# frozen_string_literal: true
+
+# This script assumes the first argument is a path to a file containing a list of changed files and the second argument
+# is the path of a file where a list of end-to-end spec files with the leading 'qa/' trimmed will be written to if
+# all the files are end-to-end test spec files.
+
+abort("ERROR: Please specify the file containing the list of changed files and a file where the qa only spec files will be written") if ARGV.size != 2
+
+changed_files_path = ARGV.shift
+output_file = ARGV.shift
+
+return unless File.exist?(changed_files_path)
+
+changed_files = File.read(changed_files_path).split(' ')
+
+all_files_are_qa_specs = changed_files.all? { |file_path| file_path =~ %r{^qa\/qa\/specs\/features\/} }
+
+if all_files_are_qa_specs
+ qa_spec_paths_trimmed = changed_files.map { |path| path.sub('qa/', '') }
+ File.write(output_file, qa_spec_paths_trimmed.join(' '))
+end