Depend on helper gem for spec_helper_acceptance
Instead of keeping a local copy of spec_helper_acceptance.rb and requiring updates to all modules for any change, we can move it into the common helper gem and require it from there. This will make it easier to create and review changes that affect all puppet modules. Also change the Gemfile to look for the gem in the local workspace if running in a zuul environment. Change-Id: Ieb3cc87333ca243fa3d74e8afa573895dfaf604b
This commit is contained in:
parent
6a10fc12d4
commit
37318a742e
12
Gemfile
12
Gemfile
@ -1,11 +1,15 @@
|
|||||||
source 'https://rubygems.org'
|
source 'https://rubygems.org'
|
||||||
|
|
||||||
|
if ENV['ZUUL_REF'] && File.exists?("#{ENV['WORKSPACE']}/openstack-infra/puppet-openstack_infra_spec_helper")
|
||||||
|
gem_checkout_method = {:path => "#{ENV['WORKSPACE']}/openstack-infra/puppet-openstack_infra_spec_helper"}
|
||||||
|
else
|
||||||
|
gem_checkout_method = {:git => 'https://git.openstack.org/openstack-infra/puppet-openstack_infra_spec_helper'}
|
||||||
|
end
|
||||||
|
gem_checkout_method[:require] = false
|
||||||
|
|
||||||
group :development, :test, :system_tests do
|
group :development, :test, :system_tests do
|
||||||
gem 'puppet-openstack_infra_spec_helper',
|
gem 'puppet-openstack_infra_spec_helper',
|
||||||
:git => 'https://git.openstack.org/openstack-infra/puppet-openstack_infra_spec_helper',
|
gem_checkout_method
|
||||||
:require => false
|
|
||||||
# Not all modules can do this, so we add it here to the ones that can
|
|
||||||
gem 'puppet-lint-empty_string-check'
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# vim:ft=ruby
|
# vim:ft=ruby
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
require 'spec_helper_acceptance'
|
require 'puppet-openstack_infra_spec_helper/spec_helper_acceptance'
|
||||||
|
|
||||||
describe 'allinone', :if => os[:family] == 'ubuntu' && os[:release] != '16.04' do
|
describe 'allinone', :if => os[:family] == 'ubuntu' && os[:release] != '16.04' do
|
||||||
|
|
||||||
|
@ -1,66 +0,0 @@
|
|||||||
require 'beaker-rspec'
|
|
||||||
|
|
||||||
hosts.each do |host|
|
|
||||||
|
|
||||||
# puppet 3 isn't available from apt.puppetlabs.com so install it from the Xenial repos
|
|
||||||
on host, "which apt-get && apt-get install puppet -y", { :acceptable_exit_codes => [0,1] }
|
|
||||||
# otherwise use the beaker helpers to install the yum.puppetlabs.com repo and puppet
|
|
||||||
r = on host, "which yum", { :acceptable_exit_codes => [0,1] }
|
|
||||||
if r.exit_code == 0
|
|
||||||
install_puppet
|
|
||||||
end
|
|
||||||
add_platform_foss_defaults(host, 'unix')
|
|
||||||
|
|
||||||
|
|
||||||
on host, "mkdir -p #{host['distmoduledir']}"
|
|
||||||
end
|
|
||||||
|
|
||||||
RSpec.configure do |c|
|
|
||||||
# Project root
|
|
||||||
proj_root = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
|
||||||
modname = JSON.parse(open('metadata.json').read)['name'].split('-')[1]
|
|
||||||
|
|
||||||
# Readable test descriptions
|
|
||||||
c.formatter = :documentation
|
|
||||||
|
|
||||||
# Configure all nodes in nodeset
|
|
||||||
c.before :suite do
|
|
||||||
# Install module and dependencies
|
|
||||||
hosts.each do |host|
|
|
||||||
|
|
||||||
# Clean out any module cruft
|
|
||||||
shell('rm -fr /etc/puppet/modules/*')
|
|
||||||
|
|
||||||
# install git
|
|
||||||
install_package host, 'git'
|
|
||||||
|
|
||||||
zuul_ref = ENV['ZUUL_REF']
|
|
||||||
zuul_branch = ENV['ZUUL_BRANCH']
|
|
||||||
zuul_url = ENV['ZUUL_URL']
|
|
||||||
|
|
||||||
# Install dependent modules via git or zuul
|
|
||||||
r = on host, "test -e /usr/zuul-env/bin/zuul-cloner", { :acceptable_exit_codes => [0,1] }
|
|
||||||
repo = 'openstack-infra/system-config'
|
|
||||||
if r.exit_code == 0
|
|
||||||
zuul_clone_cmd = '/usr/zuul-env/bin/zuul-cloner '
|
|
||||||
zuul_clone_cmd += '--cache-dir /opt/git '
|
|
||||||
zuul_clone_cmd += "--zuul-ref #{zuul_ref} "
|
|
||||||
zuul_clone_cmd += "--zuul-branch #{zuul_branch} "
|
|
||||||
zuul_clone_cmd += "--zuul-url #{zuul_url} "
|
|
||||||
zuul_clone_cmd += "git://git.openstack.org #{repo}"
|
|
||||||
on host, zuul_clone_cmd
|
|
||||||
else
|
|
||||||
on host, "git clone https://git.openstack.org/#{repo} #{repo}"
|
|
||||||
end
|
|
||||||
|
|
||||||
on host, "ZUUL_REF=#{zuul_ref} ZUUL_BRANCH=#{zuul_branch} ZUUL_URL=#{zuul_url} bash #{repo}/tools/install_modules_acceptance.sh"
|
|
||||||
on host, "rm -fr /etc/puppet/modules/#{modname}"
|
|
||||||
|
|
||||||
# Install the module being tested
|
|
||||||
puppet_module_install(:source => proj_root, :module_name => modname)
|
|
||||||
on host, "rm -fr #{repo}"
|
|
||||||
# List modules installed to help with debugging
|
|
||||||
on hosts[0], puppet('module','list'), { :acceptable_exit_codes => 0 }
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
Loading…
Reference in New Issue
Block a user