룩핀 안드로이드 Buddybuild 적용기 그리고 여러분도 적용해보자

소개

안녕하세요?
룩핀에서 안드로이드 개발을 혼자 맡고 있는 오경식 이라고 합니다.
자세한 소개는 소개링크 로 대체 하겠습니다.

글을 쓰게 된 계기

Lookpin 안드로이드 프로젝트에 CI를 붙이려고 알아보던 도중 buddybuild라는 나온지 얼마안되고 따끈따끈하고 좋은 서비스(?)라는 걸 알게 되었고 룩핀 안드로이드에 붙이게 되었습니다.
그나마 여러 CI서비스중 최근에 출시되고 규모가 있고 어느정도 검증된 서비스인 것 같지만 최근에 출시해서 그런지 워낙 자료가 부족 하고 한번 쯤 정리하는 것도 나쁘지 않을 것 같아서 적게 되었습니다.

저장소 관련 내용은 Github 기준으로 작성 되었습니다.

buddybuild 란?



홈페이지 소개

  • Ship apps faster with
    A continuous integration, continuous deployment, and user feedback platform for iOS and Android development teams.

지속적인 통합 및 배포 그리고 사용자 피드백을 위한 플랫폼 서비스 입니다.

Repository 추가

- 회원 가입

1. 회원가입을 합시다.

- Repository 추가 (Github Organization Repo)

1. Organization에 있는 Repo 같은경우 Add a with SSH를 이용해서 등록해야 합니다.
Github.com을 통해 진행 할 경우 Repository List에는 개인의 저장소 밖에 안뜨기 때문 입니다.

2. ssh-key를 추가해줍시다.

3. 진행중.

4. 등록 중 Build가 Fail난 경우 Build가 통과 될 수 있게 프로젝트 수정해주세요.

5. Build가 성공한경우


- Repository 추가 (My Repository)


설정

- Dashboard

- Adding a Github Webhook

Organization Repo 이신 분 들은 Webhook을 설정하라고 나올 겁니다.
Webhook은 buddybuild에게 repository에 대한 코드 변경 사항을 알립니다.
새로운 변경 사항이 푸시 될 때마다 buddybuild가 자동으로 새 빌드를 시작하여 최신 빌드 상태를 유지 하도록합니다.

Adding a Github Webhook docs

- App Setting

App Setting 쪽은 자신에게 맞게 설정 해주시면 됩니다.

빌드 조건 및 빌드 관련 각종 설정

테스트 관련 설정

각 브랜치별로 테스트들을 어떻게 구성해서 진행할지 설정 할 수 있고
UI Test 나 Unit Test 등등 설정 할 수 있습니다.
실제 디바이스로 하는 UI Test는 돈이 드니.. 잘 선택 해 주시길 바랍니다.

- Add Slack

Build 결과를 Slack 특정 채널에 notify 하고 싶은경우 설정 하면 됩니다.
저 같은 경우 모든 브랜치 관련 빌드를 #Commit 채널로 받고 있습니다.


Slack 표시

Deploy

배포 같은 경우 배포그룹을 만들어서 각 그룹마다 조건을 걸어서 배포 할 수 있습니다.
예) 특정 브랜치가 빌드 될때마다 , 10시간마다, 수동으로 등등

배포는 설정해둔 이메일로 배포결과를 보내거나 또는 Google Play로 바로 배포도 가능합니다.
저 같은 경우 master 브랜치가 빌드가 성공한 경우에는 buddybuild를 통해 자동으로 google play beta 배포를 진행하며 develop 브랜치 같은경우에는 이메일로 배포를 하여 테스트를 진행 합니다.

배포그룹

구글 플레이 배포 설정

이메일 배포

Build Detail

빌드 상세 화면 입니다.

테스트 결과

빌드 결과물 배포( 배포 그룹 선택해서도 가능 )

빌드 결과물 배포후 테스터들 상태

빌드가 실패한 경우 메일

사용한 후기

유저가 잘 활용 할 수 있도록 구성된 사이트와 설정이 편하고 많은 기능들 그리고 Docs에 반해 buddybuild를 선택했는데 아직까지는 후회가 없습니다.
하지만 아직 테스트 코드가 적다보니 제가 계속 노력해 나가야 하는 부분이라고 생각됩니다.
그리고 buddybuild에는 많은 기능들이 있는데 아직 그 기능들을 완전히 다 못 쓰는 부분들은 점차 발전해나가고 정리할 수 있는 부분들은 문서로 정리해두려고 합니다.

그리고 예전 안드로이드의 배포 관련 해서는 매우 수동적 이였습니다.
예를들어 테스트 apk 배포를 기기에 하나하나 설치하는 식으로 진행하거나 직원분들의 apk 재설치 요구 등등 이런 요청에 대한 수동적인 대응으로 인해 중간중간 시간을 빼앗기고 집중도 깨지고 그랬습니다.
하지만 buddybuild를 통해 배포 자동화와 배포 및 테스트 관련 규칙들도 정리가 돼서 뿌듯해 하고 있습니다.

아직 CI 나 Deploy 관련 서비스를 적용 하지 않은 기업들이 있다면 적용해보면 좋을 듯 싶습니다.

생각 보다 그렇게 오래 안걸려요!

결론

우리모두 간지나게 BuddyBuild Build status badges 달아요!

기타 문의

혹시 잘못 된 정보나 궁금한 점이 있다면 제 소개링크
에 있는 메일이나 페이스북 메시지로 문의 주세요!

감사합니다.