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

check_if_qa_only_spec_changes « qa « bin « tooling - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 5b9166b41fe74937eed84ca76b8a35a67ef593a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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