![Colleen Murphy](/assets/img/avatar_default.png)
Zuul-cloner's behavior is to clone the repository into a subdirectory under a directory named for the repo namespace. Git's default behavior is to just clone it directly into the present working directory. This patch adds an argument to the git clone command to clone it into the <namespace>/<repo name> directory, so that whether zuul-cloner or git is used the repo ends up in the same directory relative to the PWD. Change-Id: Ice5d2d72a3dd674cd09171d480d3517b96dae2a5
57 lines
1.8 KiB
Ruby
57 lines
1.8 KiB
Ruby
require 'beaker-rspec'
|
|
require 'beaker/puppet_install_helper'
|
|
|
|
run_puppet_install_helper
|
|
|
|
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|
|
|
|
|
# install git
|
|
install_package host, 'git'
|
|
|
|
zuul_ref = ENV['ZUUL_REF']
|
|
zuul_branch = ENV['ZUUL_BRANCH']
|
|
zuul_url = ENV['ZUUL_URL']
|
|
|
|
repo = 'openstack/puppet-openstack-integration'
|
|
|
|
# Start out with clean moduledir, don't trust r10k to purge it
|
|
on host, "rm -rf /etc/puppet/modules/*"
|
|
# Install dependent modules via git or zuul
|
|
r = on host, "test -e /usr/zuul-env/bin/zuul-cloner", { :acceptable_exit_codes => [0,1] }
|
|
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}/install_modules.sh"
|
|
|
|
# Install the module being tested
|
|
on host, "rm -fr /etc/puppet/modules/#{modname}"
|
|
puppet_module_install(:source => proj_root, :module_name => modname)
|
|
|
|
on host, "rm -fr #{repo}"
|
|
|
|
# List modules installed to help with debugging
|
|
on host, puppet('module','list'), { :acceptable_exit_codes => 0 }
|
|
end
|
|
end
|
|
end
|