-
Netlify Git Branch 이름 기준으로 배포 무시하기 (netlify ignore)기록이라도 하자 2023. 10. 17. 12:05
결론 미리보기
- 적용해보았으나 branch 이름을 제멋대로 가져오는 바람에 실패하고 원복함
- 해당 글에는 실패하는 과정이 담겨있습니다Netlify를 deploy preview해서 사용하고 있다.
(*deploy preview : github pull request 올릴 때마다 해당 코드를 기준으로 배포해서 미리보기를 할 수 있는 기능)깃헙 PR을 생성하면 자동으로 빌드를 한 후에 preview link를 생성해준다. 브랜치 관리에 대해서 셀 내에서 이야기를 하다가 기존에는 "feature/ ~ " 라는 이름을 무조건적으로 붙여서 브랜치를 생성하고 큰 기능일 경우에는 feature에서 새로운 feature를 생성하여 브랜치를 관리하고 있었는데
그 경우에는 feature가 아니라 bridge로 가져가는 게 더 맞을 것 같고 앞으로 그렇게 관리하기로 했다AS-IS
develop <- feature (작은 기능)
develop <- feature (큰 기능) <- feature (작은 기능)TO-BE
develop <- feature (작은 기능)
develop <- bridge (큰 기능) <- feature (작은 기능)이렇게 되면 작은 기능인 feature의 경우에는 굳이 deploy preview가 필요하지 않고, 작업 완료 후 테섭에서 검수하는 절차만 거치면 될 것 같다는 의견이 있었다.
어느 브랜치에 머지되는지를 파악해서 develop 브랜치에 머지될 경우에만 deploy 하면 좋을 것 같아서
(bridge에 머지될 feature만 deploy 막는 방식)
찾아봤는데 어느 브랜치에 머지될 지는 알 수가 없었다.
netlify 환경 변수는 여기 (https://docs.netlify.com/configure-builds/environment-variables/) 서 확인이 가능하다BRANCH가 내가 생성한 브랜치명,
HEAD는 현재 작업 중인 Git 브랜치의 "헤드" 또는 "최상위 커밋"을 가리키는 중요한 포인터이고,
여기서는 PR이 머지 되기 전에는 pull/{PR Number}/head 와 같이 표시되고, PR이 머지되고 난 이후에는 브랜치 명으로 표시된다.
ignore를 사용하기 위해서 기존에 netlify.toml을 사용했는데
찾아보니까 조건식 같은 게 들어가면 js 파일을 따로 설정해줘야 한다고 나와 있었다.
근데 그냥 toml 파일 만으로도 동작할 것 같아서 설정했더니 됐다>_<기존 netlify.toml 설정
[build] ignore = 'msg=$(git show -s --format=%B HEAD); if [[ $msg == *"[netlify-ignore]"* ]]; then exit 0; fi; exit 1'
- git commit 메세지에 netlify-ignore가 포함되어 있으면 빌드를 하지 않았다.
수정한 netlify.toml 설정
[context.deploy-preview] ignore = ''' if [[ $BRANCH != *"bridge"* ]]; then exit 0; fi; msg=$(git show -s --format=%B HEAD); if [[ $msg == *"[netlify-ignore]"* ]]; then exit 0; fi; exit 1; '''
- branch 이름에 bridge가 들어가지 않는다면 빌드를 하지 않는 로직을 추가했다.
동작하는 줄 알았다 그러나 어떤 것은 bridge라는 이름을 가져도 성공하고 어떤건 취소처리를 해버리는 것이다
netlify initilaize 하는 부분을 확인해보니 같은 브랜치여도 Git Reference를 다르게 가져온다.
HEAD로 할 때, BRANCH로 할 때 다른건가 했는데 그게 아니라 그냥 무작위로 가져오는 것 같다..
git branch도 git message처럼 git 명령어로 가져오는 것도 시도해봤으나 똑같았다..
여기에 더 쏟을 시간은 없어서 추가했던 제한을 없애는 것으로 마무리했다 엉엉..
p.s 난 네틀리파이라고 읽고,, 우리 회사 사람들 전부 네틀리파이로 읽었는데 넷리파이라고 불리나보다😵
참고 자료
- ignore command를 사용하는 방법
https://docs.netlify.com/configure-builds/ignore-builds/#skip-builds-based-on-branch-namehttps://answers.netlify.com/t/support-guide-how-to-use-the-ignore-command/37517
-
'기록이라도 하자' 카테고리의 다른 글
스타일 관련 작업 가이드 (1) 2024.06.30 Tailwind 동적 클래스 생성이 동작하지 않을 때 (0) 2023.12.20 빌드시 메모리 부족으로 빌드 실패하는 현상 해결 (1) 2023.10.07 드러커 엑서사이즈 (0) 2023.10.02 장고 다국어 i18n 적용 (0) 2023.09.22