47 lines
1.6 KiB
Ruby
47 lines
1.6 KiB
Ruby
require_relative 'qa/tools/revoke_all_personal_access_tokens'
|
|
require_relative 'qa/tools/delete_subgroups'
|
|
require_relative 'qa/tools/generate_perf_testdata'
|
|
require_relative 'qa/tools/delete_test_ssh_keys'
|
|
|
|
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 "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 "\n#{urls_file} file is missing. Please provide correct URLS_FILE_PATH or all of HOST_URL, LARGE_ISSUE_URL and LARGE_MR_URL\n\n"
|
|
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 for a provided user"
|
|
task :delete_test_ssh_keys do
|
|
QA::Tools::DeleteTestSSHKeys.new.run
|
|
end
|