.git/hooks/pre-commit 파일에 저장 후 권한을 755로 설정하면 git commit시 실행됩니다.
#!/bin/sh
FONT_YELLOW="\033[33m"
BG_RED="\033[41m"
NO_COLOR="\033[0m"
# set test flag here
GOTEST="go test -v ./..." # (1)
echo "${FONT_YELLOW}>> Run [ `echo ${GOTEST}` ] before commit.${NO_COLOR}" # (2)
${GOTEST} # (3)
if [ $? -ne 0 ]; then # (4)
echo "${BG_RED}>> Commit fail! Check your code.${NO_COLOR}" # (5)
exit 1
fi
(1) git commit시에 자동으로 수행할 테스트 플래그를 설정합니다.
(2) 어떤 명령을 수행할지 출력합니다.
(3) (1)에서 설정한 명령을 수행합니다.
(4) (3)에서 수행한 명령의 결과가 실패(exit 1)인 경우 실패했다고 출력한 후 다시 exit 1을 반환합니다.
(5) exit 1이 반환되면 commit이 수행되지 않습니다.