如果前一阶段失败,预提交挂钩将终止
pre-commit hooks terminate if previous stage fails
我正在使用预提交挂钩配置 https://pre-commit.com/ 来启用预提交挂钩
repos:
- repo: local
hooks:
- id: pytest-check
name: pytest-check
entry: pytest
language: system
pass_filenames: false
always_run: false
- id: flake8
name: flake8
entry: flake8
language: python
types: [python]
args: ['src/']
如果pytest-check
失败,它也会执行flake8
钩子。
如果先前的挂钩失败,是否可以终止执行,在这种情况下,如果 pytest-check 失败,flake8 将不会 运行。
我通读了文档,但找不到任何关于此的信息...
您正在寻找 fail_fast: true
可以同时指定at the top level and at the hook level
顺便提一下,您的配置存在一些不相关的问题:
- ~通常你不想 运行 测试作为
pre-commit
的一部分,它们会很慢,这会让你的用户感到沮丧,并经常导致他们关闭整个东西
always_run: false
是默认的,不用指定
- flake8 正如您配置的那样,它既是 double-linting 又是 fork 轰炸(您传递的是
src/
并且 pre-commit 还传递了文件名,并且您错误地配置了 multiprocessing mode) -- 我建议直接使用 pycqa/flake8
存储库来正确配置
- 对于
repo: local
钩子没有理由使用 args
-- 直接在 entry
中指定它
免责声明:我写了 pre-commit
我正在使用预提交挂钩配置 https://pre-commit.com/ 来启用预提交挂钩
repos:
- repo: local
hooks:
- id: pytest-check
name: pytest-check
entry: pytest
language: system
pass_filenames: false
always_run: false
- id: flake8
name: flake8
entry: flake8
language: python
types: [python]
args: ['src/']
如果pytest-check
失败,它也会执行flake8
钩子。
如果先前的挂钩失败,是否可以终止执行,在这种情况下,如果 pytest-check 失败,flake8 将不会 运行。
我通读了文档,但找不到任何关于此的信息...
您正在寻找 fail_fast: true
可以同时指定at the top level and at the hook level
顺便提一下,您的配置存在一些不相关的问题:
- ~通常你不想 运行 测试作为
pre-commit
的一部分,它们会很慢,这会让你的用户感到沮丧,并经常导致他们关闭整个东西 always_run: false
是默认的,不用指定- flake8 正如您配置的那样,它既是 double-linting 又是 fork 轰炸(您传递的是
src/
并且 pre-commit 还传递了文件名,并且您错误地配置了 multiprocessing mode) -- 我建议直接使用pycqa/flake8
存储库来正确配置 - 对于
repo: local
钩子没有理由使用args
-- 直接在entry
中指定它
免责声明:我写了 pre-commit