避免 Husky 因 monorepo 项目中每个不相关目录的更改而被触发

2024-01-02

我在我的 lerna monorepo 项目中使用 husky,该项目有多个目录(项目)

.husky
front
├── package.json
app
└── package.json

on hook prepush我在 front/ 和 app/ 上启动测试yarn test.

我想仅当里面的代码发生变化时才对文件夹(项目)进行测试。就像 github Actions 一样。

on:
    paths:
      - 'front/**'

哈士奇有办法吗?


我发现了一个黑客

  • 我得到了所有提交中的所有文件更改
  • 我检查我的文件夹
  • 并根据上下文触发命令
// ~/.husky/pre-push

#!/bin/sh
. "$(dirname $0)/_/husky.sh"

declare IS_APP_FOLDER_CHANGE=$(git show --name-only -r --stat --oneline HEAD^^..HEAD | grep 'app/')

echo "IS_APP_FOLDER_CHANGE  --> + $IS_APP_FOLDER_CHANGE"

if [[ $IS_APP_FOLDER_CHANGE ]]; then cd app && yarn test --watchAll=false && cd ..; fi
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

避免 Husky 因 monorepo 项目中每个不相关目录的更改而被触发 的相关文章

随机推荐