Travis CI/CD Config Generator for Pulp3 Plugins
Pulp 3 plugins are encouraged to Continuously Integrate (CI) and Continuously Deliver (CD) with Travis CI, but maintaining a feature-rich CI/CD pipeline across the 9+ repositories is cumbersome. As additional features and plugins are created, the matrix will only grow. Luckily @dkliban has created the Travis Config Generator.
Features¶
Continuous Integration (with every commit)¶
- Install your plugin using the Pulp 3 Ansible Installer
- Run all functional and unit tests on a matrix including:
- Python 3.6
- Python 3.7
- PostgreSQL
- MariaDB
- Test the docs build with
make html
- Build Python and Ruby bindings and test them
Continuous Deployment¶
- Release to PyPI via a pushed tag (after testing occurs)
- Release Bindings to PyPI and rubygems.org nightly (after testing occurs)
- Release Bindings to PyPI and rubygems.org via a pushed tag (after testing occurs)
How does this work? (high level)¶
-
Configure the rubygems.org and pypi.org passwords as secrets through the Travis UI
-
You use a command line tool to generate travis files. The tool takes options to disable features. By default, all features are enabled.
-
Commit the generated files to your plugin code, and you're done!
How do I get started?¶
The tool is included in the plugin_template for new plugins to use, but existing plugins can use it by checking out the latest version from: https://github.com/pulp/plugin_template/
See the docs in the plugin template.
How will my pipeline stay up to date?¶
- Checkout the latest https://github.com/pulp/plugin_template
- Rerun the appropriate
generate_travis_config.py
command for your plugin, for example:
./generate_travis_config.py ansible --pypi-username pulp
How do I file improvements?¶
File feature requests or stories in the issue tracker here. With the tool stored in the plugin_template, please add the 'plugin_template' tag when you file.