-
Push 정책 설정하기Developer 2024. 2. 7. 10:51728x90
> 팀원: 이번 프로젝트에 Jenkins를 도입해서 자동 빌드 및 배포를 적용했어요. 다만 같은 version으로 push를 하면 오류가 나니 version 변경에 신경써서 push해주세요!
최근 팀원분이 배포 환경을 크게 개선해줘서 push만 해도 빌드 & 배포가 이뤄지도록 해주셨습니다.
하지만 같은 package 버전으로 push가 되면 빌드 오류가 나게 되어 있어서 push할 때 주의해달라는 요청도 함께 주셨습니다.
version을 올리지 않고 push를 하는 실수가 잦아서 version을 변경하지 않으면 push를 막을 순 없을까해서 찾아보다가 git push 정책을 설정할 수 있다는 것을 알았습니다.pre-push라는 파일을 .git/hooks 경로에 생성하여 스크립트를 작성하면 됩니다.
pre-push 파일 생성
아래와 같이 pre-push 파일을 생성해줍니다.
cd .git/hooks echo > pre-push // touch pre-push
pre-push 파일을 열어서 아래와 같은 스크립트를 작성해줍니다.
#!/bin/bash # package.json 파일의 version 필드를 가져옵니다. current_version=$(node -pe "require('./package.json').version") # 현재 작업 중인 브랜치를 가져옵니다. current_branch=$(git rev-parse --abbrev-ref HEAD) # 원격 저장소의 package.json 파일의 버전을 가져옵니다. remote_version=$(git show origin/${current_branch}:package.json | awk -F'"' '/"version"/{print $4}') # 버전이 변경되지 않았다면 push를 막습니다. if [ "$current_version" == "$remote_version" ]; then echo "Error: package.json version has not been updated." exit 1 fi
git push 해보기
version을 변경하지 않고 push를 시도한다면 아래와 같은 에러메세지가 출력되는 것을 볼 수 있습니다.
728x90'Developer' 카테고리의 다른 글
postMessage를 활용한 iframe 통신하기 (0) 2024.02.23 vite 빌드 시 콘솔 로그 제거하기 (0) 2024.02.16 다수의 프로젝트 병렬로 빌드&배포하기 (0) 2024.02.06 팀즈 WebHook으로 에러 알림받기 (0) 2024.02.02 git actions로 ssh 접속하여 자동 배포 하기 (2) 2024.02.01