mirror of
https://gitlab.com/gitlab-org/gitlab-foss.git
synced 2025-07-23 00:47:51 +00:00
55 lines
1.9 KiB
Ruby
55 lines
1.9 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require_relative "qa"
|
|
|
|
Dir['tasks/*.rake'].each { |file| load file }
|
|
|
|
desc "Initialize GitLab with an access token"
|
|
task :initialize_gitlab_auth, [:address] do |_, args|
|
|
QA::Tools::InitializeGitlabAuth.new(args).run
|
|
end
|
|
|
|
desc "Generate Performance Testdata"
|
|
task :generate_perf_testdata, :type do |_, 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 "Generate group with multiple projects for direct transfer test"
|
|
task :generate_direct_transfer_test_group, [:project_tar_paths, :group_path, :project_copies] do |_, args|
|
|
QA::Support::GitlabAddress.define_gitlab_address_attribute!
|
|
QA::Runtime::Browser.configure!
|
|
QA::Runtime::Scenario.from_env(QA::Runtime::Env.runtime_scenario_attributes)
|
|
|
|
numeric_args = { project_copies: Integer(args[:project_copies], exception: false) }.compact
|
|
string_args = args.to_h
|
|
.slice(:project_tar_paths, :group_path)
|
|
.compact_blank
|
|
|
|
QA::Tools::GenerateImportTestGroup.new(**string_args, **numeric_args).generate
|
|
end
|