ci로 husky 설정법 (git hook)

치즈말랑이·2022년 11월 20일
0

라이브러리 설치

npm i -D husky
yarn add -D husky

husky 설정파일 추가

npx husky install

pre-commit, pre-push 설정

npx husky add .husky/pre-commit
npx husky add .husky/pre-push

특정 브랜치에 커밋이나 푸쉬 못하게 하기

방금 만든 pre-commit이나 pre-push에 작성한다.

#!/bin/sh

branch="$(git rev-parse --abbrev-ref HEAD)"

if [ "$branch" = "master" ]; then
  echo "You can't commit directly to master branch"
  exit 1
fi

출처: https://stackoverflow.com/questions/56987596/how-to-prevent-direct-commits-to-master-branch-using-husky
exit가 0이여야 성공한다. 1이면 동작 종료
참고: https://library.gabia.com/contents/8492/

lint-staged 설치

npm i -D lint-staged
yarn add -D lint-staged

lint-staged 설정

// package.json
{
  ...
  "scripts" : {
  ...
  "lint-staged": "lint-staged"
  },
  "lint-staged": {
    "**/*.{tsx,ts,jsx,js}" : [
      "eslint --fix",
      "prettier --write"
    ]
  }
}

출처" https://kir93.tistory.com/entry/husky-lint-staged%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%98%EC%97%AC-git-hook%EA%B1%B8%EA%B8%B0

pre-commit에 lint-staged 추가

// .husky/pre-commit
npm run lint-staged
// .husky/pre-commit
yarn lint-staged
profile
공부일기

0개의 댓글