Husky라는 Git hooks 설정 npm 패키지를 이용해 commit 전에 컴파일 에러를 체크하는 방법입니다.
- Git hooks: git commit, git push와 같은 git 명령어가 실행되기 전/후에 자동으로 실행되는 스크립트를 설정하는 기능
Main 브랜치에 코드가 머지되면 Serverless Framework 배포가 일어나는데 Lambda함수 코드의 컴파일 에러 때문에 배포에 실패하는 경우가 있었습니다.
Commit 전에 Lambda 함수 코드에 컴파일 에러가 없는지 체크해 머지 이후 배포 실패를 막으려고 합니다.
Git Hooks 자동화 라이브러리인 Husky를 이용해 Commit 전에 컴파일을 체크합니다.
- Git Hooks(다시 한번..): git commit, git push와 같은 git 명령어가 실행되기 전에 또는 후에 자동으로 실행되는 스크립트를 설정하는 기능
1. git commit 명령어를 실행하면 Husky는 pre-commit 훅을 호출합니다.
2. pre-commit 훅은 npm run test 명령어를 실행하여 로컬에서 tsc --noEmit를 시작합니다.
- tsc --noEmit는 타입스크립트 파일을 컴파일하여 타입 오류를 검사하는 명령어로, 실제 출력 파일을 생성하지 않고 타입 검사를 진행
3. tsc --noEmit 명령어가 성공적으로 실행되면 Commit이 되고 명령어가 실패하면 Commit에 실패합니다.
package.json 파일과 .husky/pre-commit 파일 2개만 간단히 설정해 주면 됩니다.
1. package.json 설정
{
"scripts": {
"type-check": "tsc --noEmit", // TS -> JS 컴파일 명령어 (실제 파일은 생성하지 않음)
"test": "npm run type-check"
}
}
2. husky 설치 및 pre-commit 설정
husky 설치 및 init
# husky 설치
npm install husky --save-dev
# husky 활성화
npx husky install
# husky init (.husky 폴더가 생성됩니다)
npx husky init
husky/pre-commit 파일에 커밋 전에 실행될 명령어 설정
# 커밋 명령어 실행전에 package.json에서 정의한 test 스크립트를 실행합니다.
npm run test
테스트 코드가 있다면 테스트 프레임워크인 Jest와 연동해 Pre-Commit 전에 Jest 코드가 실행되게 하면 좋을 것 같습니다.
1. hodu님 블로그, 효율적인 개발환경을 위한 Git Hooks, Husky, 그리고 lint-staged
2. 부지런한 배짱이님 블로그, [개발자로 협업하기] husky로 git hook 적용하기
3.CHAT GPT
[Golang] Jupyter Notebook, Lab에서 Golang 인터프리터언어처럼 사용하기 (0) | 2023.01.07 |
---|---|
[GO gRPC 에러 해결] protoc-gen-go: program not found or is not executable (0) | 2023.01.02 |
[.rpm .deb 변환] Centos 패키지 → Ubuntu 패키지로 변경하기 (0) | 2021.09.14 |
[R Shiny] Nginx 연동 Client IP 얻기 (x_forwarded_for) (0) | 2021.08.16 |
[Bamboo] Ubuntu에 Bamboo 설치하기 (0) | 2021.08.02 |