[tox]
minversion = 1.6.0
-envlist = pep8
+envlist = docs,pre-commit,gitlint
+# TODO: Include docs when it starts performing strict checks.
skipsdist = true
-[testenv:pep8]
-deps =
- flake8
- pep8==1.7.0
-commands = flake8
+[testenv:docs]
+basepython = python3
+deps = -rdocs/requirements.txt
+commands =
+ sphinx-build -W -n -b html -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/html
-[flake8]
-show-source = True
-max-line-length = 120
+[testenv:pre-commit-install]
+basepython = python3
+deps = pre-commit
+commands =
+ pre-commit install
+ pre-commit install --hook-type commit-msg
+
+[testenv:pre-commit-uninstall]
+basepython = python3
+deps = pre-commit
+commands =
+ pre-commit uninstall
+ pre-commit uninstall --hook-type commit-msg
+
+[testenv:pre-commit-autoupdate]
+basepython = python3
+deps = pre-commit
+commands =
+ pre-commit autoupdate
+
+[testenv:pre-commit]
+basepython = python3
+deps = pre-commit
+passenv = HOME
+commands =
+ pre-commit run --all-files --show-diff-on-failure
+# FIXME: run gitlint with pre-commit once the following installation issue is resolved
+# in the Jenkins environment: https://github.com/jorisroovers/gitlint/issues/535
+# pre-commit run gitlint-ci --hook-stage manual
+
+[testenv:gitlint]
+basepython = python3
+deps = gitlint
+commands =
+ gitlint