본문 바로가기
개발/Git

git hooks를 사용하여 commit 전에 go test 실행하기 (테스트 강제하기)

by 상5c 2021. 7. 18.

.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이 수행되지 않습니다.