Skip to content
This repository has been archived by the owner on Jun 4, 2021. It is now read-only.

Commit

Permalink
(maint) Add rake tasks for running acceptance tests
Browse files Browse the repository at this point in the history
This adds `rake acceptance:full` and `rake acceptance:smoke` tasks for
running acceptance tests.
  • Loading branch information
Scott McClellan authored and speedofdark committed Jul 25, 2018
1 parent 89b88cc commit 5cfa4e2
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 1 deletion.
1 change: 1 addition & 0 deletions Rakefile
@@ -1,5 +1,6 @@
require 'rake'
require 'pathname'
load './acceptance/tasks/acceptance.rake'
RAKE_ROOT = File.expand_path(File.dirname(__FILE__))

begin
Expand Down
4 changes: 3 additions & 1 deletion acceptance/Gemfile
Expand Up @@ -12,11 +12,13 @@ end

beaker_version = ENV['BEAKER_LOCATION'] || ENV['BEAKER_VERSION']
group :ci, :system_tests do
gem 'rake'
if beaker_version
gem 'beaker', *location_for(beaker_version)
else
gem 'beaker', '~> 2.5'
gem 'beaker', '~> 3.30'
end
gem 'beaker-pe', '~> 1.40.7'
gem "beaker-hostgenerator", *location_for(ENV['BEAKER_HOSTGENERATOR_VERSION'] || "~> 0.2")
gem "beaker-abs", *location_for(ENV['BEAKER_ABS_VERSION'] || "~> 0.2")
gem 'public_suffix', '1.4.6'
Expand Down
60 changes: 60 additions & 0 deletions acceptance/tasks/acceptance.rake
@@ -0,0 +1,60 @@
require 'rake'

def generate_hosts(pe_version, hypervisor = 'vmpooler',
test_target = 'centos7-64mdc-64a')
hosts_file = 'hosts.cfg'
puts "Generating hosts..."
cmd = <<HEREDOC
export BUNDLE_PATH=.bundle/gems
export BUNDLE_BIN=.bundle/bin
bundle install
beaker-hostgenerator --pe_dir=http://enterprise.delivery.puppetlabs.net/#{pe_version}/ci-ready \
--disable-default-role --hypervisor #{hypervisor} #{test_target} > #{hosts_file}
HEREDOC

Dir.chdir('acceptance'){
system(cmd)
}

hosts_file
end

def run_beaker(hosts_file, tests, package_version)
cmd = <<HEREDOC
# We should change this to SHA and SUITE_VERSION in the acceptance tests
export PE_RAZOR_SERVER_PACKAGE_BUILD_VERSION=#{package_version}
bundle exec beaker --xml --debug --root-keys --repo-proxy --hosts #{hosts_file} \
--type pe --keyfile ~/.ssh/id_rsa-acceptance --preserve-hosts onfail \
--helper lib/helper.rb --pre-suite suites/pre_suite/install-server-from-module \
--tests #{tests} --load-path lib
HEREDOC

Dir.chdir('acceptance'){
system(cmd)
}
end

namespace :acceptance do
desc "Run acceptance tests"
task :full, [:pe_version, :razor_server_version, :hosts_file] do |t, args|
abort("Required argument: :pe_version") if args[:pe_version].nil?
server_version = args[:razor_server_version] || `git rev-parse HEAD`
tests = 'suites/tests/smoke,suites/tests/full'
hosts = args[:hosts_file]
hosts = generate_hosts(args[:pe_version]) if hosts.nil?
run_beaker(hosts, tests, server_version)
end

desc "Run smoke tests"
task :smoke, [:pe_version, :razor_server_version, :hosts_file] do |t, args|
abort("Required argument: :pe_version") if args[:pe_version].nil?
server_version = args[:razor_server_version] || `git rev-parse HEAD`
tests = 'suites/tests/smoke'
hosts = args[:hosts_file]
hosts = generate_hosts(pe_version) if hosts.nil?
run_beaker(hosts, tests, server_version)
end
end

0 comments on commit 5cfa4e2

Please sign in to comment.