move from bundle to chefdk and add bootstrap.sh
bootstrap script installs testing dependencies on trusty and relies on common bootstrap.sh in stackforge/cookbook-openstack-common - fixed mixup in dependency for knife task in Rakefile - deprecated Gemfile - updated TESTING.md blueprint: bootstrap-infra-test-nodes Change-Id: Ia6e457570fc585874dbf56751c2f8388eb637bbc
This commit is contained in:
parent
bd109dbd1b
commit
38d3b8808e
4
Gemfile
4
Gemfile
@ -1,3 +1,7 @@
|
|||||||
|
## THIS GEMFILE IS DEPRECATED AND WILL BE REMOVED AFTER THE NEXT RELEASE
|
||||||
|
## THERE WON'T BE ANY UPDATES TO THIS FILE DURING THIS RELEASE CYCLE
|
||||||
|
## WE SWITCHED TO CHEFDK AS THE BUNDLE FOR THE NEEDED GEMS
|
||||||
|
|
||||||
source 'https://rubygems.org'
|
source 'https://rubygems.org'
|
||||||
|
|
||||||
gem 'chef', '~> 11.18.6'
|
gem 'chef', '~> 11.18.6'
|
||||||
|
25
Rakefile
25
Rakefile
@ -2,36 +2,29 @@ task default: ["test"]
|
|||||||
|
|
||||||
task :test => [:lint, :style, :knife, :unit]
|
task :test => [:lint, :style, :knife, :unit]
|
||||||
|
|
||||||
task :bundler_prep do
|
task :berks_prep do
|
||||||
mkdir_p '.bundle'
|
sh %{chef exec berks vendor}
|
||||||
sh %{bundle install --path=.bundle --jobs 1 --retry 3 --verbose}
|
|
||||||
end
|
end
|
||||||
|
|
||||||
task :berks_prep => :bundler_prep do
|
task :lint do
|
||||||
sh %{bundle exec berks vendor}
|
sh %{chef exec foodcritic --epic-fail any --tags ~FC003 --tags ~FC023 .}
|
||||||
end
|
end
|
||||||
|
|
||||||
task :lint => :bundler_prep do
|
task :knife => :berks_prep do
|
||||||
sh %{bundle exec foodcritic --epic-fail any --tags ~FC003 --tags ~FC023 .}
|
sh %{chef exec knife cookbook test openstack-integration-test -o berks-cookbooks}
|
||||||
end
|
end
|
||||||
|
|
||||||
task :knife => :bundler_prep do
|
task :style do
|
||||||
sh %{bundle exec knife cookbook test openstack-integration-test -o berks-cookbooks}
|
sh %{chef exec rubocop}
|
||||||
end
|
|
||||||
|
|
||||||
task :style => :bundler_prep do
|
|
||||||
sh %{bundle exec rubocop}
|
|
||||||
end
|
end
|
||||||
|
|
||||||
task :unit => :berks_prep do
|
task :unit => :berks_prep do
|
||||||
sh %{bundle exec rspec --format documentation}
|
sh %{chef exec rspec --format documentation}
|
||||||
end
|
end
|
||||||
|
|
||||||
task :clean do
|
task :clean do
|
||||||
rm_rf [
|
rm_rf [
|
||||||
'.bundle',
|
|
||||||
'berks-cookbooks',
|
'berks-cookbooks',
|
||||||
'Gemfile.lock',
|
|
||||||
'Berksfile.lock'
|
'Berksfile.lock'
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
|
15
TESTING.md
15
TESTING.md
@ -1,20 +1,19 @@
|
|||||||
# Testing the Cookbook #
|
# Testing the Cookbook #
|
||||||
|
|
||||||
This cookbook uses [bundler](http://gembundler.com/) and [berkshelf](http://berkshelf.com/) to isolate dependencies.
|
This cookbook uses [chefdk](https://downloads.chef.io/chef-dk/) and [berkshelf](http://berkshelf.com/) to isolate dependencies. Make sure you have chefdk and the header files for `gecode` installed before continuing. Make sure that you're using gecode version 3. More info [here](https://github.com/opscode/dep-selector-libgecode/tree/0bad63fea305ede624c58506423ced697dd2545e#using-a-system-gecode-instead). For more detailed information on what needs to be installed, you can have a quick look into the bootstrap.sh file in this repository, which does install all the needed things to get going on ubuntu trusty. The tests defined in the Rakefile include lint, style and unit. For integration testing please refere to the [openstack-chef-repo](https://github.com/stackforge/openstack-chef-repo).
|
||||||
Make sure you have `ruby 1.9.x`, `bundler`, `rake`, build essentials and the header files for `gecode` installed before continuing. Make sure that you're using gecode version 3. More info [here](https://github.com/opscode/dep-selector-libgecode/tree/0bad63fea305ede624c58506423ced697dd2545e#using-a-system-gecode-instead).
|
|
||||||
|
|
||||||
We have four test suites which you can run either, individually (there are three rake tasks):
|
We have four test suites which you can run either, individually (there are three rake tasks):
|
||||||
|
|
||||||
$ rake lint
|
$ chef exec rake lint
|
||||||
$ rake style
|
$ chef exec rake style
|
||||||
$ rake knife
|
$ chef exec rake knife
|
||||||
$ rake unit
|
$ chef exec rake unit
|
||||||
|
|
||||||
or altogether:
|
or altogether:
|
||||||
|
|
||||||
$ rake test
|
$ chef exec rake
|
||||||
|
|
||||||
The `rake` tasks will take care of installing the needed gem dependencies and cookbooks with `berkshelf`.
|
The `rake` tasks will take care of installing the needed cookbooks with `berkshelf`.
|
||||||
|
|
||||||
## Rubocop ##
|
## Rubocop ##
|
||||||
|
|
||||||
|
9
bootstrap.sh
Executable file
9
bootstrap.sh
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/bash -x
|
||||||
|
## This script is for installing all the needed packages on trusty to run the chef tests with 'chef exec rake'.
|
||||||
|
## It relies on the common bootstrap.sh from stackforge/cookbook-openstack-common for installing common dependencies.
|
||||||
|
|
||||||
|
curl https://raw.githubusercontent.com/stackforge/cookbook-openstack-common/master/bootstrap.sh \
|
||||||
|
--retry 3 \
|
||||||
|
--silent \
|
||||||
|
--show-error \
|
||||||
|
| /bin/bash -x
|
Loading…
Reference in New Issue
Block a user