tasks/ci.rake in beaker-puppet-2.1.0 vs tasks/ci.rake in beaker-puppet-3.0.0

- old
+ new

@@ -297,11 +297,12 @@ end def beaker(command, *argv) argv.concat(ENV['OPTIONS'].split(' ')) if ENV['OPTIONS'] - sh('beaker', command.to_s, *argv) + bundle_cmd = (ENV.fetch('BUNDLE_GEMFILE', false) && ENV.fetch('BUNDLE_BIN_PATH', false)) ? %w[bundle exec] : [] + sh(*bundle_cmd, 'beaker', command.to_s, *argv) end def beaker_setup(type) beaker(:init, '--hosts', ENV.fetch('HOSTS', nil), '--preserve-hosts', 'always', '--options-file', "config/#{String(type)}/options.rb") @@ -313,14 +314,18 @@ def beaker_suite(type) beaker(:init, '--hosts', ENV.fetch('HOSTS', nil), '--options-file', "config/#{String(type)}/options.rb") beaker(:provision) begin - beaker(:exec, 'pre-suite', '--preserve-state', '--pre-suite', pre_suites(type)) - beaker(:exec, 'pre-suite', '--preserve-state') - beaker(:exec, ENV.fetch('TESTS', nil)) - beaker(:exec, 'post-suite') + begin + beaker(:exec, 'pre-suite', '--preserve-state', '--pre-suite', pre_suites(type)) + beaker(:exec, 'pre-suite', '--preserve-state') + + beaker(:exec, ENV.fetch('TESTS', nil)) + ensure + beaker(:exec, 'post-suite') + end ensure preserve_hosts = ENV['OPTIONS'].include?('--preserve-hosts=always') if ENV['OPTIONS'] beaker(:destroy) unless preserve_hosts end end @@ -328,26 +333,29 @@ def beaker_suite_retry(type) beaker(:init, '--hosts', ENV.fetch('HOSTS', nil), '--options-file', "config/#{String(type)}/options.rb") beaker(:provision) begin - beaker(:exec, 'pre-suite', '--preserve-state', '--pre-suite', pre_suites(type)) - beaker(:exec, 'pre-suite', '--preserve-state') - begin - json_results_file = Tempfile.new - beaker(:exec, ENV.fetch('TESTS', nil), '--test-results-file', json_results_file.path) - rescue RuntimeError => e - puts "ERROR: #{e.message}" - tests_to_rerun = JSON.load(File.read(json_results_file.path)) - raise e if tests_to_rerun.nil? || tests_to_rerun.empty? + beaker(:exec, 'pre-suite', '--preserve-state', '--pre-suite', pre_suites(type)) + beaker(:exec, 'pre-suite', '--preserve-state') - puts '*** Retrying the following:' - puts tests_to_rerun.map { |spec| " #{spec}" } - beaker(:exec, tests_to_rerun.map { |str| "#{str}" }.join(',')) + begin + json_results_file = Tempfile.new + beaker(:exec, ENV.fetch('TESTS', nil), '--test-results-file', json_results_file.path) + rescue RuntimeError => e + puts "ERROR: #{e.message}" + tests_to_rerun = JSON.load(File.read(json_results_file.path)) + raise e if tests_to_rerun.nil? || tests_to_rerun.empty? + + puts '*** Retrying the following:' + puts tests_to_rerun.map { |spec| " #{spec}" } + beaker(:exec, tests_to_rerun.map { |str| "#{str}" }.join(',')) + end + ensure + beaker(:exec, 'post-suite') end ensure - beaker(:exec, 'post-suite') preserve_hosts = ENV['OPTIONS'].include?('--preserve-hosts=always') if ENV['OPTIONS'] beaker(:destroy) unless preserve_hosts end end