문제 상황
클라우드 타입에 배포 후 깃 액션을 통해 CD 설정을 했다.
(클라우드 타입 깃액션 CI/CD 설정하기는 옆 글을 참고)
위처럼 성공적으로 워크플로가 작동했기 때문에 당연히 배포가 성공적으로 되었을 거라 생각했는데...
😭 어라라
그러나 클라우드 타입 배포 내역을 확인해보니 아래 처럼 오류 두가지가 발생했다.
(11시간 전은 워크 플로 파일을 업데이트해서, 10시간 전 내역은 새 pr을 머지해서 발생한 것)
원인을 찾고자 빌드 로그를 확인했다.
Connecting to "클라우드타입 스페이스" ...
🏂 Build runner(sel-4) is starting...
├ Build type is dockerfile
└ Build env is {"JWT_SECRET_KEY":"t********","JDBC_DATABASE_URL":"j*********************************************************************************************************************","JDBC_DATABASE_USERNAME":"c*****","JDBC_DATABASE_DRIVER":"c***********************","JDBC_DATABASE_PASSWORD":"0*******"}
😐 Fetching repository.
├ Git URL is git@github.com:배포하려는 레포.git
└ Git ref is refs/heads/dev
ssh key initializing
ssh key added to "/root/.ssh/gitsync_rsa"
cloning from "git@github.com:배포하려는 레포.git"
🔴 Build job failed. git fetching error: Command failed: git clone git@github.com:배포하려는 레포.git --branch dev --depth=1 .
Cloning into '.'...
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Errors:
[ServiceError] build "5mk12alp9u2ox9" failed
로그를 자세히 보면 git@github.com: Permission denied (publickey), Could not read from remote repository. 라고 되어 있는 것을 확인 할 수 있다.
즉, 원격 레포에 대해 권한이 없기 때문에 read할 수 없다.는 에러이다.
✅ 해결방법
클라우드 타입에 배포 시에 깃 url을 통해 배포를 했기 때문에 배포 설정을 들어가게 되면 아래와 같이 배포 키가 등록되어 있는 것을 알 수 있다.
따라서 클라우드 타입에 권한을 주기 위해서는 위의 배포키 즉, SSH키를 원격 레포지토리에 등록해줘야 한다.
원격 레포 깃허브 -> Settings -> Deploy Keys -> Add deploy key로 위 키를 추가해주면 된다.
👀 설정 후 워크플로 다시 실행 하기
그 후 오류가 났던 워크 플로 실행 내역에서 Re-run all jobs를 실행하면 아래처럼 이번엔 성공한 것을 확인할 수 있다!!!