lib/pdksync/rake_tasks.rb in pdksync-0.5.0 vs lib/pdksync/rake_tasks.rb in pdksync-0.6.0

- old
+ new

@@ -8,10 +8,27 @@ pr_title: 'pdksync_{ref}', additional_title: args[:additional_title] } PdkSync.main(steps: [:use_pdk_ref, :clone, :pdk_update, :create_commit, :push, :create_pr], args: args) end +desc 'Run full gem_testing process, clone repository, gemfile update, create pr. Additional title information can be added to the title, which will be appended before the reference section.' +task :gem_testing, [:additional_title, :gem_to_test, :gem_line, :gem_sha_finder, :gem_sha_replacer, :gem_version_finder, :gem_version_replacer, :gem_branch_finder, :gem_branch_replacer] do |_task, args| # rubocop:disable Metrics/LineLength + args = { branch_name: 'pdksync_gem_testing{ref}', + commit_message: 'pdksync_gem_testing{ref}', + pr_title: 'pdksync_gem_testing{ref}', + additional_title: args[:additional_title], + gem_to_test: args[:gem_to_test], + gem_line: args[:gem_line], + gem_sha_finder: args[:gem_sha_finder], + gem_sha_replacer: args[:gem_sha_replacer], + gem_version_finder: args[:gem_version_finder], + gem_version_replacer: args[:gem_version_replacer], + gem_branch_finder: args[:gem_branch_finder], + gem_branch_replacer: args[:gem_branch_replacer] } + PdkSync.main(steps: [:use_gem_ref, :clone, :gem_file_update, :create_commit, :push, :create_pr], args: args) +end + namespace :pdksync do desc 'Runs PDK convert against modules' task :pdk_convert do PdkSync.main(steps: [:pdk_convert]) end @@ -19,37 +36,104 @@ desc 'Runs PDK validate against modules' task :pdk_validate do PdkSync.main(steps: [:pdk_validate]) end - desc "Run a command against modules eg rake 'run_a_command[complex command here -f -gx]'" - task :run_a_command, [:command] do |_task, args| - PdkSync.main(steps: [:run_a_command], args: args[:command]) + desc "Run a command against modules eg rake 'run_a_command[complex command here -f -gx, 'background']'" + task :run_a_command, [:command, :option] do |_task, args| + PdkSync.main(steps: [:run_a_command], args: args) end + desc "Gem File Update'gem_file_update[gem_to_test, gem_line, gem_sha_finder, gem_sha_replacer, gem_version_finder, gem_version_replacer, gem_branch_finder, gem_branch_replacer]'" + task :gem_file_update, [:gem_to_test, :gem_line, :gem_sha_finder, :gem_sha_replacer, :gem_version_finder, :gem_version_replacer, :gem_branch_finder, :gem_branch_replacer] do |_task, args| + PdkSync.main(steps: [:gem_file_update], args: args) + end + + desc "Run test against modules eg rake 'run_tests_locally[litmus, 'provision_type']'" + task :run_tests_locally, [:provision_type, :puppet_collection] do |_task, args| + PdkSync.main(steps: [:run_tests_locally], args: args) + end + + desc "Fetch run results against modules eg rake 'fetch_test_results_locally[litmus]'" + task :fetch_test_results_locally do + PdkSync.main(steps: [:fetch_test_results_locally]) + end + + desc "Run test in jenkins for traditional modules eg rake 'run_tests_jenkins['jenkins_server_url', 'branchname']'" + task :run_tests_jenkins, [:jenkins_server_url, :github_branch, :test_framework, :github_user] do |_task, args| + PdkSync.main(steps: [:run_tests_jenkins], args: args) + end + + desc 'Multi Gem Testing, multi_gem_testing[gem_name, version_file, build_gem, gem_path, gemfury_username]' + task :multi_gem_testing, [:gem_name, :version_file, :build_gem, :gem_path, :gemfury_username] do |_task, args| + PdkSync.main(steps: [:multi_gem_testing], args: args) + end + + desc 'Multi Gem File Update, multigem_file_update[gem_name, gemfury_username]' + task :multigem_file_update, [:gem_name, :gemfury_username] do |_task, args| + PdkSync.main(steps: [:multigem_file_update], args: args) + end + desc 'Display the current configuration of pdksync' task :show_config do - include PdkSync::Constants + config = PdkSync::Configuration.new puts 'Please note that you can override any of the configuration by using an additional file at `$HOME/.pdksync.yml`.'.bold.red - puts 'PDKSync Configuration'.bold.yellow - puts '- Git hosting platform: '.bold + PdkSync::Constants::GIT_PLATFORM.to_s.cyan - puts '- Git base URI: '.bold + PdkSync::Constants::GIT_BASE_URI.to_s.cyan - if PdkSync::Constants::GIT_PLATFORM == :gitlab - puts '- Gitlab API endpoint: '.bold + PdkSync::Constants::GITLAB_API_ENDPOINT.to_s.cyan + puts "\nPDKSync Configuration".bold.yellow + config.to_h.each do |key, value| + puts "- #{key}: ".bold + value.to_s.cyan end - puts '- Namespace: '.bold + PdkSync::Constants::NAMESPACE.to_s.cyan - puts '- PDKSync Dir: '.bold + PdkSync::Constants::PDKSYNC_DIR.to_s.cyan - puts '- Push File Destination: '.bold + PdkSync::Constants::PUSH_FILE_DESTINATION.to_s.cyan - puts '- Create PR Against: '.bold + PdkSync::Constants::CREATE_PR_AGAINST.to_s.cyan - puts '- Managed Modules: '.bold + PdkSync::Constants::MANAGED_MODULES.to_s.cyan - puts '- Default PDKSync Label: '.bold + PdkSync::Constants::PDKSYNC_LABEL.to_s.cyan end + + desc "Fetch run results against traditional modules eg rake 'fetch_traditional_test_results'" + task :test_results_jenkins, [:jenkins_server_url] do |_task, args| + PdkSync.main(steps: [:test_results_jenkins], args: args) + end + + desc 'Add a provision list key to provision.yaml' + task :add_provision_list, [:key, :provisioner, :images] do |_task, args| + PdkSync.main(steps: [:add_provision_list], args: args) + end + + desc 'Generates release checks in provision.yaml based on module compatible platforms and puppet version' + task :generate_vmpooler_release_checks, [:puppet_version] do |_task, args| + PdkSync.main(steps: [:generate_vmpooler_release_checks], args: args) + end + + desc 'Update the metadata.json OS supported list to that defined in conf/supported_os_list.yaml' + task :update_os_support do |_task, args| + PdkSync.main(steps: [:update_os_support], args: args) + end + + desc 'Remove a platform version from the metadata.json' + task :remove_platform_from_metadata, [:os, :version] do |_task, args| + PdkSync.main(steps: [:remove_platform_from_metadata], args: args) + end + + desc 'Add a platform version to the metadata.json' + task :add_platform_to_metadata, [:os, :version] do |_task, args| + PdkSync.main(steps: [:add_platform_to_metadata], args: args) + end + + desc 'Add or update a requirement in the metadata.json' + task :update_requirements, [:name, :key, :value] do |_task, args| + PdkSync.main(steps: [:update_requirements], args: args) + end + + desc 'Normalise the OS and OS versions in the metadata.json' + task :normalize_metadata_supported_platforms do |_task, args| + PdkSync.main(steps: [:normalize_metadata_supported_platforms], args: args) + end end namespace :git do desc 'Clone managed modules' task :clone_managed_modules do PdkSync.main(steps: [:clone]) + end + + desc 'Clone managed gem' + task :clone_gem, [:gem_name] do |_task, args| + PdkSync.main(steps: [:clone_gem], args: args) end desc "Stage commits for modules, branchname and commit message eg rake 'git:create_commit[flippity, commit messagez]'" task :create_commit, [:branch_name, :commit_message] do |_task, args| PdkSync.main(steps: [:create_commit], args: args)