summary refs log tree commit diff
diff options
context:
space:
mode:
-rwxr-xr-xjenkins.sh16
-rw-r--r--tox.ini6
2 files changed, 18 insertions, 4 deletions
diff --git a/jenkins.sh b/jenkins.sh
index 2680d16b42..0a8bde933d 100755
--- a/jenkins.sh
+++ b/jenkins.sh
@@ -1,4 +1,18 @@
 #!/bin/bash -eu
 
 export PYTHONDONTWRITEBYTECODE=yep
-TOXSUFFIX="--reporter=subunit | subunit-1to2 | subunit2junitxml --no-passthrough --output-to=results.xml" tox
+
+# Output test results as junit xml
+export TRIAL_FLAGS="--reporter=subunit"
+export TOXSUFFIX="| subunit-1to2 | subunit2junitxml --no-passthrough --output-to=results.xml"
+
+# Output coverage to coverage.xml
+export DUMP_COVERAGE_COMMAND="coverage xml -o coverage.xml"
+
+# Output flake8 violations to violations.flake8.log
+# Don't exit with non-0 status code on Jenkins,
+# so that the build steps continue and a later step can decided whether to
+# UNSTABLE or FAILURE this build.
+export PEP8SUFFIX="--output-file=violations.flake8.log || echo flake8 finished with status code \$?"
+
+exec tox
diff --git a/tox.ini b/tox.ini
index cf54ebb0ac..95424765c3 100644
--- a/tox.ini
+++ b/tox.ini
@@ -11,8 +11,8 @@ deps =
 setenv =
     PYTHONDONTWRITEBYTECODE = no_byte_code
 commands =
-    /bin/bash -c "coverage run --source=synapse {envbindir}/trial {posargs:tests} {env:TOXSUFFIX:}"
-    coverage report -m
+    /bin/bash -c "coverage run --source=synapse {envbindir}/trial {env:TRIAL_FLAGS:} {posargs:tests} {env:TOXSUFFIX:}"
+    {env:DUMP_COVERAGE_COMMAND:coverage report -m}
 
 [testenv:packaging]
 deps =
@@ -25,4 +25,4 @@ skip_install = True
 basepython = python2.7
 deps =
     flake8
-commands = flake8 synapse
+commands = /bin/bash -c "flake8 synapse {env:PEP8SUFFIX:}"