CSP (Cloud Service Provider)/AWS
CodeBuild - empty git-upload-pack given for primary source and source version refs/heads/develop
HemMu
2024. 6. 13. 14:52
갑자기 개발 팀에서 갑자기 배포가 안된다는 내용을 전달 받고 확인해보니 CodeBuild에서 에러를 자꾸 뱉고 있는 걸 확인했다.
잘 돌아가던 CodeBuild에서 특별히 설정한 것도 없는데, 문제가 생겨 모든 환경의 애플리케이션 배포가 실패하고 있단다.
문제를 해결하려면 로그부터 확인해보자
아래와 같은 메세지가 나오면서 배포가 되지 않고 있었다.
# 로그 발생 메세지
[Container] YYYY/MM/DD HH:mm Running on CodeBuild On-demand
[Container] ...502885 Waiting for agent ping
[Container] ..804890 Waiting for DOWNLOAD_SOURCE
empty git-upload-pack given for primary source and source version refs/heads/develop
empty git-upload-pack given for primary source and source version refs/heads/develop
CodeCommit을 사용 중이었는데, 위 에러가 CodeCommit의 git tag 수가 20,000개가 초과하는 경우 해당 문제가 발생하는 것을 확인했다.
git ls-remote --tags origin | wc -l
40200
git tag가 무려 4만 개가 넘어가고 있었다. 어떻게 버티고 있던걸까,,
일단 tag를 좀 지워주는데, 원격 저장소에서 아래처럼 모든 태그 삭제를 해버리면 좋겠지만?
git tag -l | xargs -n 1 git push --delete origin
commit에 열심히 기록하고 있던 걸 다 지울 수는 없으니까 골라서 지우도록 하자.
태그 목록 확인
git tag -l
로컬 저장소에서는 아래 명령어로 지우고
git tag -d <tagname>
원격 저장소라면 아래 명령어로 특정 태그를 삭제할 수 있다.
git push origin --delete <tagname>
그런데 태그 이름이 고정이 아닌 특정 패턴이 있을 수 도 있겠다. 그럴 땐 특정 패턴을 걸어 태그를 삭제 하자.
# release-1.0.0
# release-2.0.1
# release-2.0.2
git tag -l 'release-*' | xargs -n 1 git push --delete origin