# frozen_string_literal: true # rubocop:disable Rails/RakeEnvironment require_relative "qa" Dir['tasks/*.rake'].each { |file| load file } desc "Revokes all personal access tokens" task :revoke_personal_access_tokens do QA::Tools::RevokeAllPersonalAccessTokens.new.run end desc "Deletes subgroups within a provided group" task :delete_subgroups do QA::Tools::DeleteSubgroups.new.run end desc "Initialize GitLab with an access token" task :initialize_gitlab_auth, [:address] do |t, args| QA::Tools::InitializeGitLabAuth.new(args).run end desc "Generate Performance Testdata" task :generate_perf_testdata, :type do |t, args| args.with_defaults(type: :all) QA::Tools::GeneratePerfTestdata.new.method(args[:type]).call end desc "Run artillery load tests" task :run_artillery_load_tests do unless ENV['HOST_URL'] && ENV['LARGE_ISSUE_URL'] && ENV['LARGE_MR_URL'] urls_file = ENV['URLS_FILE_PATH'] || 'urls.yml' unless File.exist?(urls_file) raise(<<~ERR) #{urls_file} file is missing. Please provide correct URLS_FILE_PATH or all of HOST_URL, LARGE_ISSUE_URL and LARGE_MR_URL\n ERR end urls = YAML.safe_load(File.read(urls_file)) ENV['HOST_URL'] = urls["host"] ENV['LARGE_ISSUE_URL'] = urls["large_issue"] ENV['LARGE_MR_URL'] = urls["large_mr"] end sh('artillery run load/artillery.yml -o report.json') sh('artillery report report.json -o report.html && rm report.json') end desc "Generate data and run load tests" task generate_data_and_run_load_test: [:generate_perf_testdata, :run_artillery_load_tests] desc "Deletes test ssh keys a user" task :delete_test_ssh_keys, [:title_portion, :delete_before, :dry_run] do |t, args| QA::Tools::DeleteTestSSHKeys.new(args).run end desc "Deletes projects directly under the provided group" task :delete_projects do QA::Tools::DeleteProjects.new.run end desc "Deletes test users" task :delete_test_users, [:delete_before, :dry_run, :exclude_users] do |t, args| QA::Tools::DeleteTestUsers.new(args).run end namespace :test_resources do desc "Deletes resources created during E2E test runs" task :delete, :file_pattern do |t, args| args.with_defaults(file_pattern: QA::Runtime::Env.test_resources_created_filepath) QA::Tools::TestResourcesHandler.new(args[:file_pattern]).run_delete end desc "Upload test resources JSON files to GCS" task :upload, [:file_pattern, :environment_name] do |t, args| QA::Tools::TestResourcesHandler.new(args[:file_pattern]).upload(args[:environment_name]) end desc "Download test resources JSON files from GCS" task :download, [:environment_name] do |t, args| QA::Tools::TestResourcesHandler.new.download(args[:environment_name]) end end # rubocop:enable Rails/RakeEnvironment