-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Devops/refactor/#573 husky 리팩토링 #574
The head ref may contain hidden characters: "DEVOPS/refactor/#573-husky-\uB9AC\uD329\uD1A0\uB9C1"
Conversation
변경된 파일에 대해서 코드 포맷터, 린트를 실행하는 lint-staged 설치
공통으로 사용하는 패키지는 최상위에서 관리
최상위 디렉토리에서 husky 사용하기로 결정
커밋을 수행하기 전에 변경사항에 대해 린트 및 포맷터 실행
푸시를 수행하기 전에 브랜치 패턴을 검사하여 정규식을 만족하지 않는 브랜치로 푸시하는 것을 예방
pre-push 훅에 의해 브랜치명이 강제되므로 깃허브에서 액션을 돌릴 필요가 없음
`\d`가 동작하지 않아 `0-9`로 변경
- 기여자가 자동으로 표시되므로 기여자를 작성한 푸터 삭제 - 이스케이프 문자 수정
node 16 -> node 20
069789a
to
1855ef3
Compare
Important
아래 코드는 프론트엔드 "lint-staged": {
"*.{ts,tsx}": [
"prettier --write",
"eslint --cache --fix --report-unused-disable-directives --max-warnings 0"
]
}, |
src 디렉토리 외부에 위치하는 test 디렉토리에서 src에서 사용하는 paths 별칭을 이해할 수 있도록 moduleNameMapper 작성
- include : ts 컴파일러가 컴파일할 파일 지정하는 옵션 - e2e 테스트를 돌리기 위해서는 test 디렉토리도 포함해야 함
@@ -19,5 +19,5 @@ | |||
"noFallthroughCasesInSwitch": true | |||
}, | |||
"typeRoots": ["../../@types"], | |||
"include": ["src", "../../@types"] | |||
"include": ["src", "test", "../../@types"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
e2e 테스트 파일이 src
디렉토리 외부에 존재해서 test
디렉토리도 추가해야 e2e 테스트 실행할 수 있어!!
- 원격 서버로 복사하는 파일이 많아 source 옵션이 너무 길어짐 - 가독성을 위해 와일드카드 사용 - env 파일 복사 - 쉘 스크립트 복사 - deploy용 컴포즈 파일 복사 - nginx 도커파일 복사
없어도 괜찮아! 전에 작성하다 말았던거라서 작동을 잘 안해... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
좋다!! 👍 👍 👍
🔮 resolved #573
변경 사항
lint-staged
실행고민과 해결 과정
1️⃣
pre-commit
- 커밋 전에lint-staged
실행하기pre-commit
은 커밋에 의해 트리거되는 훅이다. 커밋을 실행하기 전에 코드 포맷팅과 린트를 수행하도록 만들었다.lint-staged는 스테이징된 파일에 대해서만 린트를 수행한다. 이전에는 전체 프로젝트에 대해 린트를 수행했는데, 이는 실행 속도를 저하시키고, 이번 커밋에서 수정하지 않은 파일도 수정하기 때문에 비효율적이라고 판단했다.
npx lint-staged
를 실행하면package.json
의lint-staged
가 실행되어 코드 포맷팅, 린트가 자동으로 수행된다.2️⃣
pre-push
- 푸시 전에 브랜치 네이밍 강제하기pre-push
는 푸시에 의해 호출되는 훅이다. PR을 설정하는 깃헙 액션에서pr-labeler
가 브랜치명을 기반으로 라벨을 부착하기 때문에 브랜치 네이밍을 강제해야 한다.브랜치명을 가져오고, 이를 정규식과 비교하여 일치하는 경우에만 푸시할 수 있도록 한다.
(선택) 테스트 결과