Vercel
은 연결한 저장소를 자동 배포해주는 편의성을 제공한다. 그날 작업을 마무리하고 배포한다면 더할 나위 없지만, 오늘은 미완성 작업이라 커밋은 하고 배포는 하지 말아야 했다. 브랜치를 새로 만들어 커밋하면 될까 고민했지만, preview
로 빌드될 것 같았다.
이런 때를 대비해 Vercel
은 Ignored Build Step
기능을 제공한다.
Ignored Build Step
은 git diff --quiet HEAD^ HEAD
명령어를 이용해 커밋 해시를 비교하고, 과거에 배포한 해시와 같으면 새 배포를 생성하지 않는다.
만약 미완성 작업 폴더/파일이 있다면, 명령어 뒤에 폴더명/파일명을 덧붙여 새 배포를 멈출 수 있다.
예를 들어, 내 경우 ./data
폴더를 작업 중이었고, 그 외에는 변경사항이 없어 배포할 이유가 없었다. 이때 git diff --quiet HEAD^ HEAD ':!./data'
명령으로 data
폴더의 변경사항은 제외하고 커밋 해시를 비교해 배포 여부를 결정한다.
git diff --quiet HEAD^ HEAD
> 마지막 커밋 전 버전(HEAD^
)과 마지막 커밋 버전(HEAD
) 간의 변경사항을 비교--quiet
> 변경사항 비교 결과를 출력하지 않음
:!
> 지정된 패턴을 제외하고 변경 사항을 표시
Vercel
의 프로젝트에 들어가서 Settings -> Git -> Ignored Build Step -> Save
순으로 진행하면 된다.
비교에서 제외할 파일이 여러 개라면, git diff --quiet HEAD^ HEAD ':!./data' ':!test.ts' ...
등으로 나열하면 된다.
참고
Vercel - Projects Overview#Ignored Build Step
Vercel - How do I use the "Ignored Build Step" field on Vercel?
How to ignore Vercel build step for certain folders and files
Git - diff