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