From 6f31e5276927fe0860bc0e042716df31fb18c336 Mon Sep 17 00:00:00 2001 From: Andrew Grimberg Date: Thu, 10 Jun 2021 13:53:56 -0700 Subject: [PATCH] CI: Update pre-commit and make it work properly in CI Change-Id: Idf2dbf580ca14af8a3c868a385658b4d51c4de9e Signed-off-by: Andrew Grimberg --- .pre-commit-config.yaml | 13 +++++++++---- tox.ini | 24 ++++++++++++++++++++++-- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e3ebf2f..15ff117 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,17 +1,22 @@ --- repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v3.1.0 + rev: v3.4.0 hooks: - id: trailing-whitespace + - id: no-commit-to-branch + args: + - --branch=master + - --branch=main - - repo: https://github.com/prettier/pre-commit - rev: v2.1.2 + - repo: https://github.com/pre-commit/mirrors-prettier + rev: v2.2.1 hooks: - id: prettier + stages: [commit] - repo: https://github.com/jorisroovers/gitlint - rev: v0.13.1 + rev: v0.15.1 hooks: - id: gitlint diff --git a/tox.ini b/tox.ini index 18fddbb..4a51413 100644 --- a/tox.ini +++ b/tox.ini @@ -21,10 +21,30 @@ commands = sphinx-build -W -b linkcheck -d {envtmpdir}/doctrees ./docs/ {toxinid [testenv:pre-commit] basepython = python3 -deps = pre-commit +allowlist_externals = + /bin/sh +deps = + pre-commit +passenv = HOME commands = pre-commit run --all-files --show-diff-on-failure - pre-commit run gitlint --hook-stage commit-msg --commit-msg-filename .git/COMMIT_EDITMSG + /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" [testenv:reno] basepython = python3 -- 2.16.6