CI: Update pre-commit and make it work properly in CI 57/67957/1
authorAndrew Grimberg <agrimberg@linuxfoundation.org>
Thu, 10 Jun 2021 20:53:56 +0000 (13:53 -0700)
committerAndrew Grimberg <agrimberg@linuxfoundation.org>
Thu, 10 Jun 2021 20:53:56 +0000 (13:53 -0700)
Change-Id: Idf2dbf580ca14af8a3c868a385658b4d51c4de9e
Signed-off-by: Andrew Grimberg <agrimberg@linuxfoundation.org>
.pre-commit-config.yaml
tox.ini

index e3ebf2f..15ff117 100644 (file)
@@ -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 (file)
--- 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