Git Hooks를 사용하여 테스트 및/또는 Linter 실행

3311 단어 gittestinglint
원본 기사: https://www.ethancarlsson.dev/blog/githooks

간단한 실행 방법을 설정하려는 경우
에 대한 pre-commit 후크의 각 커밋 전 코드
Javascript 프로젝트, 이것이 내가 한 방법입니다.

설정



후크는 실제로 git 이외의 다른 것에 의존하지 않지만
이 프로젝트에서 viteyarn를 사용하고 있습니다.
모든 빌드 도구와 동일하게 작동합니다.npm를 사용하는 경우 yarn [command]npm run [command]로 바꾸십시오.

후크가 작동하려면 다음 코드를 작성해야 합니다.{YOUR_PROJECT_ROOT}/.git/hooks/pre-commit .
따라서 시작하려면 다음 중 하나를
프로젝트 루트의 터미널:

vim의 경우: vim .git/hooks/pre-commit
나노용: nano .git/hooks/pre-commit
VS 코드의 경우: code .git/hooks/pre-commit
또는 원하는 다른 방식으로 파일을 만들고 편집합니다.

암호



#!/bin/bash

yarn lint
linting_result=$?

if [[ $linting_result -ne 0 ]]
then
  echo "LINT FAILED!"
  echo 'Please fix linting problems before committing.'
  exit 1
fi

yarn test
test_result=$?

if [[ $test_result -ne 0 ]]
then
  echo "TESTS FAILED!"
  echo 'Please make sure tests pass before committing.'
  exit 1
fi
yarn testyarn lint 명령은 다음과 정확히 동일하게 작동합니다.
그들은 내 프로젝트의 루트에 있는 명령줄에서 호출될 때 수행합니다.

종료 코드를 얻고 여기에서 0인지 확인합니다.

linting_result=$?

if [[ $linting_result -ne 0 ]]


0(-ne 0)이 아니면 메시지를 에코합니다.
0이 아닌 다른 종료 코드로 bash 코드를 종료합니다.

then
  echo "LINT FAILED!"
  echo 'Please fix linting problems before committing.'
  exit 1
fi


테스트나 linter가 실패하면 종료됩니다.
1의 코드로. 그러나 다른 코드로 종료하면
이유를 알고 싶습니다. 0이 아닌 값으로 종료하고
커밋을 진행하십시오.

다음 단계



지금 해야 할 일은 chmod +x .git/hooks/pre-commit를 실행하여 코드를 실행 가능하게 만드는 것입니다.
코드는 모든 커밋에서 실행됩니다.

documentation을 확인하고 추가
당신이 좋아하는 다른 후크. 푸시에서도 동일한 코드를 실행합니다.
예를 들어 pre-push 후크

좋은 웹페이지 즐겨찾기