0. 소개


안녕하세요.

안드로이드를 담당하고 있는 다나입니다.

안드로이드의 업무 환경을 개선하기 위해 Github Actions으로 CI/CD 구축했던 과정을 소개하려 합니다.

1. 배경


기존의 안드로이드 빌드 및 배포 과정은 아래와 같았습니다.

공비서 CRM의 경우 Google Play Store 업로드 .apk와 수기 배포 .apk를 각각 따로 생성해야 했기 때문에, Android Studio에 묶여 있는 시간이 두배로 소요 되었습니다.

QA를 위한 내부테스트 배포 또한, 직접 Slack에 dev.apk 파일을 전달하거나 직접 USB케이블로 빌드하는 방식으로 한 번 빌드 당 평균 3~5분 정도 소요되었습니다.

정리하면, 한 번의 출시를 하기 위해서는 빌드 및 배포로만 총 50분이 소요됩니다.

이는 업무 시간의 공백을 만들어내기도 하고 특히 중간 중간 들어오는 기기에 직접 빌드 요청일 경우, 업무의 집중도 및 몰입도 저하를 초래할 수 있습니다.

또한 Google Play Store 업로드, 수기 배포, QA 용 .apk 생성을 직접 수기로 설정하다보니 Human Issues가 발생 할 수도 있습니다.

CI/CD를 구축하면 빌드 및 배포 자동화로 인해 해당 과정에서 소요되는 시간을 절약할 수 있고, 빌드에 대한 인터럽트를 방지할 수 있어 오로지 업무에 집중할 수 있는 환경을 만들어 줄 수 있다 생각했습니다.

또한 Human Issues를 방지할 수 있다 생각해, 빌드 및 배포 과정을 개선하게 되었습니다.

2. 선택


CI/CD Tool로는 Circle CI, TeamCity등이 있지만, 다음과 같은 이유로 Github Actions을 선택했습니다.

Github Actions Documentation

3. 과정


  1. 개발용 devBracnh를 default로 두고, 기존에 출시를 위한 mainBranch를 총 세개로 분리

    Branches Server 용도
    dev(default) - 기능 개발
    featureBranch를 통해 기능 개발
    → dev로 PR 요청 후 merge
    release release Google play store 업로드 release_note_release.txt 작성 및
    dev → release 로 pull만 가능
    releaseBlog release 수기 배포
    release_note_release_blog.txt 작성 및
    dev → releaseBlog 로 pull만 가능
  2. 내부 테스트를 위해 Firebase App Distribution에 테스터 및 그룹을 생성

    groups: 공비서crm테스터

  3. 각 Branch에 .yml파일을 생성해 Workflow 정의

  4. 배포 테스트

  5. Slack 알림 확인

4. 결과


Firebase App Distribution에 배포까지 무사히 구현이 완료되었습니다!

Github에서 Actions탭을 들어가 보시면 빌드부터 배포까지 약 8분이 소요되는 걸 볼 수 있습니다.

Untitled

크게 개선되었다고 느낀점은 다음과 같습니다.

앞으로도 업무 환경 개선에 기여할 수 있는 방법을 찾아 헤렌의 개발팀의 오로지 업무에만 집중할 수 있는 환경을 만들기에 도움이 되었으면 좋겠습니다!

감사합니다 😊


저희와 함께 하고 싶은 분들은 헤렌의 채용 담당자 에게 커피챗을 요청해 보세요! 헤렌은 현재 다양한 개발 직군을 적극적으로 채용하고 있습니다 🚀

헤렌 채용 │ HERREN CAREERS

https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https://0909.notion.site/Github-Actions-CI-CD-16321bf0ef7a4ad786721923c3ce511d