[tox] minversion = 1.6 envlist = pre-commit skipsdist = true [testenv:jenkins-jobs] deps = jenkins-job-builder=={env:JJB_VERSION:5.0.2} commands = jenkins-jobs {posargs:--help} [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] description = Precommit checks for black, gitlint, etc. allowlist_externals = /bin/sh deps = pre-commit passenv = HOME commands = pre-commit run --all-files --show-diff-on-failure /bin/sh -c 'if ! git config --get user.name > /dev/null; then \ git config --global --add user.name "CI"; \ touch .git/REMOVE_USERNAME; fi' /bin/sh -c 'if ! git config --get user.email > /dev/null; then \ git config --global --add user.email "ci@example.org"; \ touch .git/REMOVE_USEREMAIL; fi' /bin/sh -c "if [ -f .git/COMMIT_EDITMSG ]; then \ cp .git/COMMIT_EDITMSG .git/COMMIT_MSGTOX; else \ git log HEAD -n1 --pretty=%B > .git/COMMIT_MSGTOX; fi" pre-commit run gitlint --hook-stage commit-msg --commit-msg-filename .git/COMMIT_MSGTOX /bin/sh -c "rm -f .git/COMMIT_MSGTOX" /bin/sh -c "if [ -f .git/REMOVE_USERNAME ]; then \ git config --global --unset user.name; \ rm -f .git/REMOVE_USERNAME; fi" /bin/sh -c "if [ -f .git/REMOVE_USEREMAIL ]; then \ git config --global --unset user.email; \ rm -f .git/REMOVE_USEREMAIL; fi"