GitLab.com의 Group 운영 및 외부 서비스 (Unity Cloud Build) 연계

GitLab Advent Calendar 2018 - 12일째 기사입니다.

소개



클라우드 서비스 GitLab.com을 Bronze Plan에서 계약하고 사용합니다. 개발팀의 일은 Unity 앱 제작이기 때문에 master에 병합할 때마다 역시 클라우드 서비스 Unity Teams Advanced의 Cloud Build에서 빌드하기도 합니다.

운용도 잘 되어 안심하고 있던 2018년 9월 초순의 어느 날, Unity의 Cloud Build가 끊임없이 실패하기 시작해, 정상화를 향한 시행착오의 길이 시작되는 것이었습니다.

빌드 환경 구성



· GitLab.com [Bronze Plan]에서 소스 관리
· LFS는 GitLab.com 서비스 제공을 사용합니다.
· Unity Teams Advanced의 Cloud Build에서 Unity 앱 빌드
GitLab.com의 master 브랜치를 모니터링하고 자동 빌드하고 있습니다.

조심하다



그럼 결론부터.
  • Unity Cloud Build의 GitLab.com 참조 설정은 git 대신 https에서 수행합시다
  • GitLab.com의 사용자 할당은 소속 그룹의 상속에 의존하지 않고 프로젝트에 직접 사용자를 할당합니다.

    이상

    조심하지 않으면 무슨 일이 일어나는가?



    × Unity Cloud Build에서 GitLab.com 리포지토리를 얻기 위해 git 프로토콜을 사용하는 경우


  • 이런 오류로 고생했습니다
  • 「Error downloading object: xxx.png : batch request: ssh_exchange_identification: Connection closed by remote host: exit status 255」
    

     →clone은 성공합니다만, checkout으로 실패합니다. LFS 서버에서 파일을 어느 정도의 수 다운로드하여 안심하고 있으면, 도중에 「Connection closed by remote host」됩니다.
     →LFS를 사용하지 않는다면 문제 없다고 생각합니다만, LFS 사용하지요 Unity의 리소스라든지.
     →git가 아닌 https를 사용하면 문제 없어. (GitLab.com 지원 담당자)
     →그동안 문제 없게 동작하고 있던 checkout이 실패하기 시작한 원인은, 실은 조사 중단한 채입니다. (GitLab.com이 GCP로 이동한 영향이라고 생각했어요 그때는・・・)

    × GitLab.com에는 Group이라는 기능이 있어 개발 멤버는 이 Group에 소속되죠? 그렇게 하면 Group내에 둔 프로젝트마다 일일이 멤버 할당하지 않아도 됩니다.


  • 그룹을 통해 간접적으로 프로젝트에 대한 액세스 권한을 부여하면 Unity Cloud Build의 참조 목록에 프로젝트가 나타나지 않고 채워집니다.
    Unity Cloud Buildの設定で、
    GitLab authentication の機能を使い、Group Repositories を HTTPS で指定しようとする。
     1) Navigate to the Cloud Build Config Page of your Project
     2) Click on Edit Source Control
     3) Select your repository <---- ここでRepositoryの一覧が表示されるが、目的のRepositoryが表示されない
    

     →아니 아니 평범하게 액세스권이 있는 유저라면 참조처 일람에 나오고. (Unity 지원 담당자)
     →https로 참조하려고 하면 일람에 나오지 않습니다만, 실은 이 상태에서도 git 프로토콜로 직접 참조 설정하면 clone는 가능합니다.
    →에서도, git 프로토콜에서는 LFS로부터의 다운로드로 상기 에러가 나오므로 안 되네요.

    → GitLab.com의 project 설정에서 project에 사용자를 "직접"할당하면 Unity Cloud Build의 참조 목록에 즉시 표시됩니다. 이것으로 1건 낙착이 됩니다.

    예: URL이 h ttps://gitlab.com/{Group}/{Repository}.git인 경우,
    사용자가 {Repository}에 할당되면 참조 대상 목록에 표시됩니다.

     →이 건, GitLab.com측의 문제인가, Unity Cloud Build측의 문제인가 원인 조사는 방치중입니다

    × GitLab.com의 유료 플랜은 기본적으로 Group 내에 소속된 멤버 수로 지불액이 결정됩니다. 그러므로 운영 중에는 Group의 참가자를 고정으로 둡니다.




  • 그룹에 사용자를 추가 할 수 없으면 좋지만이 설정을 사용하면 프로젝트에 사용자 할당 메뉴가 나타나지 않고 가볍게 패킹됩니다.

     →앞의 에러시, project에 유저를 할당해 보면 어떻게 될지 시험하고 싶었습니다만, 메뉴를 찾을 수 없어, 잠시 고민했습니다.
      →일시적으로 체크박스를 제외하고 추가합시다.

    ~~
    신세를 졌던 GitLab 커뮤니티, Unity 지원, GitLab 지원, 감사합니다. 이런 메모가 누군가의 도움이 되는 일이 없거나 하거나 하도록(듯이).

    그럼 좋은 GitLab 생활을.
  • 좋은 웹페이지 즐겨찾기