diff --git a/roles/run-cover/defaults/main.yaml b/roles/run-cover/defaults/main.yaml new file mode 100644 index 000000000..d0c50c392 --- /dev/null +++ b/roles/run-cover/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +tox_environment: cover +zuul_work_dir: "src/{{ zuul.project.canonical_name }}" diff --git a/roles/run-cover/tasks/main.yaml b/roles/run-cover/tasks/main.yaml new file mode 100644 index 000000000..d12a2d397 --- /dev/null +++ b/roles/run-cover/tasks/main.yaml @@ -0,0 +1,30 @@ +- name: Run code coverage + args: + chdir: "{{ zuul_work_dir }}" + shell: | + #!/bin/bash -xe + + # Run coverage via tox. Also, run pbr freeze on the + # resulting environment at the end so that we have a record of exactly + # what packages we ended up testing. + + export NOSE_COVER_HTML=1 + export UPPER_CONSTRAINTS_FILE=$(pwd)/upper-constraints.txt + + venv={{ tox_environment }} + + # Workaround the combo of tox running setup.py outside of virtualenv + # and RHEL having an old distribute. The next line can be removed + # when either get fixed. + python setup.py --version + + tox -e$venv + result=$? + [ -e .tox/$venv/bin/pbr ] && freezecmd=pbr || freezecmd=pip + + echo "Begin $freezecmd freeze output from test virtualenv:" + echo "======================================================================" + .tox/${venv}/bin/${freezecmd} freeze + echo "======================================================================" + + exit $result