diff options
Diffstat (limited to 'tooling/bin')
-rwxr-xr-x | tooling/bin/find_changes | 10 | ||||
-rwxr-xr-x | tooling/bin/qa/run_qa_check | 45 |
2 files changed, 7 insertions, 48 deletions
diff --git a/tooling/bin/find_changes b/tooling/bin/find_changes index 8ad5011459b..38e1f363dd9 100755 --- a/tooling/bin/find_changes +++ b/tooling/bin/find_changes @@ -46,12 +46,16 @@ class FindChanges # rubocop:disable Gitlab/NamespacedClass config.private_token = gitlab_token end - mr_changes = Gitlab.merge_request_changes(mr_project_path, mr_iid) - - mr_changes.changes.map { |change| change['new_path'] unless change['deleted_file'] }.compact + mr_changes.changes.flat_map do |change| + change.to_h.values_at('old_path', 'new_path') + end.uniq end end + def mr_changes + @mr_changes ||= Gitlab.merge_request_changes(mr_project_path, mr_iid) + end + def test_files return [] if !matched_tests_file || !File.exist?(matched_tests_file) diff --git a/tooling/bin/qa/run_qa_check b/tooling/bin/qa/run_qa_check deleted file mode 100755 index 5b8844ec4fd..00000000000 --- a/tooling/bin/qa/run_qa_check +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/env ruby -# frozen_string_literal: true - -require 'pathname' - -# This script checks if the code changes justify running the QA suite. -# -# It assumes the first argument is a directory of files containing diffs of changes from an MR -# (e.g., created by tooling/bin/find_change_diffs). It exits with a success code if there are no diffs, or if the diffs -# are suitable to run QA tests. -# -# The script will abort (exit code 1) if the argument is missing. -# -# The following condition will result in a failure code (2), indicating that QA tests should not run: -# -# - If the changes only include tests being put in quarantine - -abort("ERROR: Please specify the directory containing MR diffs.") if ARGV.empty? -diffs_dir = Pathname.new(ARGV.shift).expand_path - -# Run QA tests if there are no diffs. E.g., in scheduled pipelines -exit 0 if diffs_dir.glob('**/*').empty? - -files_count = 0 -specs_count = 0 -quarantine_specs_count = 0 - -diffs_dir.glob('**/*').each do |path| - next if path.directory? - - files_count += 1 - next unless path.to_s.end_with?('_spec.rb.diff') - - specs_count += 1 - quarantine_specs_count += 1 if path.read.match?(/^\+.*,? quarantine:/) -end - -# Run QA tests if there are no specs. E.g., when the MR changes QA framework files. -exit 0 if specs_count == 0 - -# Skip QA tests if there are only specs being put in quarantine. -exit 2 if quarantine_specs_count == specs_count && quarantine_specs_count == files_count - -# Run QA tests under any other circumstances. E.g., if there are specs being put in quarantine but there are also -# other changes that might need to be tested. |