개인공부/배포

Turborepo에서 수정된 앱만 배포하는 CI/CD 설정하기 (GitHub Actions & Vercel)

minseokiim 2024. 11. 11. 20:20

Turborepo로 만든 프로젝트 CI/CD를 구현해봤습니당
 

1. GitHub Pages


처음에는 깃헙 페이지로 구현했고, Next 앱은 정적 배포 하기 위해 output 설정을 추가해줬다.
하지만, Next 앱에서는 정적배포에 한계가 있어, Vercel로 전환하기로 했당
 
 

2. Vercel 

1) GUI

 
처음에는 Vercel에서 GUI로 배포를 생성했지만,
GUI로 배포를 할 경우에는 메인 브랜치에 푸시해야만 변경된 버전으로 배포 확인이 가능하다는 단점이 있었다.
 
터미널에서 가능한 환경을 이용해야 했음!
그래서 Vercel CLI로 다시 ~!
 
 

2) CLI 🌟

Vercel CLI를 사용하여 터보레포 안의 프로젝트들을 연결하고, 배포를 진행했다.
 

 
정상 동작하는 것까지 확인 후에 `.github/workflow/.yml` 파일을 수정하여, 변경된 경로만 배포되도록 로직을 추가해줌
여기서 필요한 키들(버셀 토큰, 팀아이디, 프로젝트 아이디 등등)은 GitHub의 Secrets에 추가하는 거 잊지 말기~!
 
리액트 앱은 SPA니까 .vercel에 리다이렉트도 추가해줘야한당
넥스트 앱은 괜춘!
 

 
매 커밋마다 프리뷰 링크가 뜨게 always로 깃허브 액션에 해당 링크가 뜨게 추가해주었당
 


 

 

 
 
Vercel dashboard에 제대로 생성된 것도 확인 했고,
 


성공 시에는 정상 배포 되는 것도 확인 했고,
 

 

 
넥스트 파일만 변경하면, 넥스트만 배포되고 리액트는 이렇게 무시되는 것도 확인 완료 ㅎㅎ

 
원하는 기능이었던
1) 커밋 시, 이전 커밋과 비교해서 수정된 앱만 배포되게
2) 동적 배포 되게
3) 커밋마다 프리뷰 링크가 달리게
모두 성공!
 
 
CICD는 처음해보는데, 다음부터는 더 잘 할 수 있을지도 ...?
간단하게 올렸지만 에러 잡는데 하루 이상 걸렸다.......................ㅎㅎ.........

 
 
참고)
https://vercel.com/guides/how-can-i-use-github-actions-with-vercel
https://vercel.com/docs/monorepos#add-a-monorepo-through-vercel-cli

How to Use GitHub Actions to Deploy to Vercel

Learn how to use GitHub Actions as your CI/CD provider to deploy to Vercel, including support for GitHub Enterprise Server.

vercel.com