This module has grown over time based on a range of contributions from people using it. If you follow these contributing guidelines your patch will likely make it into a release a little quicker.
- Fork the repo.
- Create your feature branch (
git checkout -b feature/my-new-feature
) - Run the tests. We only take pull requests with passing tests, and it's great to know that you have a clean slate
- Add a test for your change. Only refactoring and documentation changes require no new tests. If you are adding functionality or fixing a bug, please add a test.
- Make the test pass.
- Push to your fork and submit a pull request.
The testing and development tools have a bunch of dependencies, all managed by bundler.
By default the tests use a baseline version of Puppet.
Install the dependencies like so:
bundle
The test suite will run Puppet Lint, and Puppet Syntax, as well Rubocop to check various syntax and style things. You can run these locally with:
bundle exec rake checks
The unit test suite covers most of the code, as mentioned above please add tests if you're adding new functionality. If you've not used rspec-puppet before then feel free to ask about how best to test your new feature. Running the test suite is done with:
bundle exec rake spec
Or for parallel testing
bundle exec rake parallel_spec
The unit tests just check the code runs, not that it does exactly what we want on a real machine. For that we're using litmus.
This fires up a new container and runs a series of simple tests against it after applying the module. You can run this with:
ruby .ci/acceptance.rb
This will run the tests on an default containers. You can also run the
integration tests against any other configuration specified in file
provision.yaml
. For example for Ubuntu 18.04 you should run:
LITMUS_KEY=waffle_deb ruby .ci/acceptance.rb