Gitlab Runner를 이용하여 프로젝트를 배포한 경험을 공유해보고자 한다.
Gitlab Project > Settings > CI/CD 의 경로로 진입하여 Runner를 등록해야 한다.
나는 이미 등록되어있는 Shared Runner를 이용하여 배포를 진행했기 때문에, 이 부분은 생략 예정이다.
Vercel을 배포 작업을 위해서는 Token을 인증 후, 배포를 원하는 Project의 project id/org id 연결이 필요하다.
로그인 후 Settings > Tokens 경로에서 토큰을 발급한다.
VERCEL CLI 로그인 후 vercel link 명령어를 통해 프로젝트와 연결하면 .vercel > project.json에서 확인 가능하다.
Vercel Login - Project link
.vercel > project.json
// 예시
{
"projectId":"your project id",
"orgId": "your org id"
}
Project > Settings > Environment Variables
상기 경로로 프로젝트에 사용중인 .env나 사용하는 변수들을 등록해준다.
Project > Settings > CI/CD > Variables
상기 경로로 위에서 발급한 Vercel Token, Project id, Org id를 등록해준다.
(yaml 배포 작업 진행 시 로그인과 프로젝트를 연결하는 역할)
Runner를 사용하여 진행하려는 작업은 다음과 같았다.
1) 브랜치(Dev / Main) 별로 Push나 Merge가 발생하면 작업이 수행되도록 한다.
2) Vercel로 각각 연결된 프로젝트에 배포 작업을 진행한다.
default:
image: node:18.17.0
stages:
- deploy
# Vercel 배포(예: dev branch)
deploy_dev:
# 수행하는 작업이 무엇인지 입력해준다.
stage: deploy
# 사용하는 Gitlab Runner 이름을 입력해준다.
tags:
- wongee-runner
# 본 작업을 수행하기 전, 수행해야하는 작업을 입력해준다.
before_script:
# nvm 설치 후 LTS 버젼 사용
- curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
- source ~/.nvm/nvm.sh
- nvm install 18.17.0
- nvm use 18.17.0
# 제대로 설치되었는지 버젼 확인
- node -v
- npm -v
# 수행해야 하는 본 작업을 입력해준다.
script:
# Vercel 배포를 위한 vercel 설치
- npm install -g vercel@latest
# 브랜치 별로 적용해야하는 now.json(vercel.json) 파일 지정 - main branch 생략 가능
- rm -rf now.json
- cp now.wongee.json now.json
- rm -rf .vercel
- mkdir -p .vercel
# VERCEL TOKEN을 사용하여 프로젝트 빌드/배포
- VERCEL_DEBUG=1 vercel pull --yes --environment=production --token="$VERCEL_TOKEN_DEV"
- NODE_OPTIONS="--max-old-space-size=4096" vercel build --prod --token="$VERCEL_TOKEN_DEV"
- vercel deploy --prebuilt --prod --token="$VERCEL_TOKEN_DEV"
# 배포가 이루어질 브랜치 지정
only:
- dev