트러블슈팅

카카오 클라우드 & Kubernetes 환경에 CD (수정사항) - 6

sowakemeup 2025. 8. 22. 00:20

Manifest 파일을 레포지토리 하나에서 따로 관리하지 않고, 서비스의 레포지토리에서 각각 관리하는 구조로 수정하면서
ci.yml 과 jenkinsfile 에 대한 수정사항을 정리해봤습니다.

 

1. ci.yml (GitHub Actions) 수정 내용

CI 파이프라인이 Jenkins를 호출하는 마지막 단계(Trigger Jenkins CD Pipeline)에서, 배포할 저장소의 주소와 정확한 코드 버전(커밋 ID)을 함께 보내도록 수정했습니다.

 

추가된 환경 변수:

APP_REPO_URL: CI 실행된 저장소(깃헙)의 전체 URL

GIT_COMMIT_SHA: CI 실행시킨 커밋의 고유 ID (: a1b2c3d4...)

 

curl 명령어 수정: 

기존에 보내던 FULL_IMAGE_NAME 더해, APP_REPO_URL GIT_COMMIT_SHA 파라미터로 추가하여 Jenkins 전달하도록

 

2. Jenkinsfile (Jenkins) 수정 내용

 

GitHub Actions로부터 추가된 두 개의 정보를 받을 수 있도록 파라미터를 추가하고, Git Checkout 로직을 변경했습니다.

 

parameters 블록 수정:

APP_REPO_URL GIT_COMMIT_SHA라는 이름의 문자열 파라미터를 추가했습니다.

 

stages 수정:

기존의 Checkout Manifest Repository 스테이지의 이름을 Checkout Application Source Code 변경했습니다.

스테이지 안의 git 명령어를, 전달받은 APP_REPO_URL GIT_COMMIT_SHA 파라미터 값을 사용해 정확한 버전의 소스코드를 받아오도록 수정했습니다.