티스토리 뷰

와.. 겨우 이것 때문에 2시간을 삽질했다.

AWS Code Pipeline 을 통한 CI/CD 를 구성하는 경우

가장 쉬운 구성으로 택하는 것이

Code Commit에 올린 소스를 Code Build 에서 빌드 하는 것이다.

Code Build의 소스를 Code Commit으로 한 경우라면 문제가 안된다. 당연히 해당 소스로 부터 코드를 가져온다.

하지만.. 여러가지 Repository를 Clone해서 사용하려는 경우에는..? 어떻게 해야 하는가?

HTTPS 로 Git clone 하자니.. 아이디, 패스워드를 입력해야 하니.. 아래와 같은 에러가 난다.

fatal: could not read Username for 'https://git-codecommit.us-west-2.amazonaws.com': No such device or address

SSH로 Clone 하자니.. ssh키를 등록해야 하니.. 아래와 같은 에러가 난다.

Host key verification failed.
fatal: Could not read from remote repository.

해결법은 간단했다.

바로 buildspec.yml 파일의 env: 항목에 git-credential-helper를 yes로 하는 것.

즉 buildspec.yml의 구성을 다음과 같이 하니... 정상적으로 git clone이 되었다.

참고로 ssh:// 는 안되고 https:// 만 되더라.

version: 0.1

env:
  git-credential-helper: yes

phases:
  install:
    commands:
      - git clone https://git-codecommit.us-west-2.amazonaws.com/v1/repos/MyRepo
      - cd MyRepo && ls
      - git clone https://git-codecommit.us-west-2.amazonaws.com/v1/repos/MyRepo2
      - cd MyRepo2 && ls
...
...

물론 CodeBuild의 Source가 애당초 CodeCommit Repo 였으면 이런 고민은 할 필요도 없다. 알아서 잘 가져온다.

아 그리고 당연한 얘기지만 CodeBuild의 Service Role이 CodeCommit에 접근 할 수 있는 IAM Policy를 갖고 있어야 한다. 그렇지 않으면 The requested URL returned error: 403 와 같은 에러가 난다.

넘 기뻐서 적어 놓는다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함