diff options
Diffstat (limited to 'tooling/bin/qa/check_if_qa_only_spec_changes')
-rwxr-xr-x | tooling/bin/qa/check_if_qa_only_spec_changes | 22 |
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 |