Greenwave is a service to decide whether a software artifact can pass certain gating points in a software delivery pipeline, based on test results stored in ResultsDB and waivers stored in WaiverDB.
Set up a python virtualenv:
$ sudo dnf install python-virtualenv $ virtualenv env_greenwave $ source env_greenwave/bin/activate $ pip install -r requirements.txt $ pip install -r dev-requirements.txt
Install the project:
$ python setup.py develop
Run the server:
$ DEV=true python run-dev-server.py
The server is now running at http://localhost:5005 and API calls can be sent to http://localhost:5005/api/v1.0.
You can configure this app by copying conf/settings.py.example
into
conf/setting.py
and adjusting values as you see fit. It overrides default
values in greenwave/config.py
.
You can run the unit tests, which live in the greenwave.tests
package, with
the following command:
$ TEST=true py.test greenwave/tests/
To test against all supported versions of Python, you can use tox::
$ sudo dnf install python3-tox $ tox
There are also functional tests in the functional-tests
directory.
The functional tests will start their own copy of the
ResultsDB,
WaiverDB, and Greenwave applications and then
send HTTP requests to them. You can run the functional tests like this:
$ TEST=true PYTHONPATH=. py.test functional-tests/
The functional tests assume you have ResultsDB and WaiverDB git checkouts in
../resultsdb
and ../waiverdb
respectively. You can tell it to find them in
a different location by passing RESULTSDB
or WAIVERDB
environment
variables.
You can view the docs locally with::
$ cd docs $ make html $ firefox _build/html/index.html
This project is copyright Red Hat and other contributors, licensed under the
terms of the GNU General Public License version 2 or later. See the COPYING
file for the complete text of the license. Refer to the git history for
complete authorship details.