프로그래밍/DevOps

Native(Android, iOS) 개인 개발환경 구축하기 - 개요 (raspberry PI & git & bitrise & firebase & slack & telegram)

freemmer 2021. 6. 25. 09:37

Native(Android, iOS) 개인 개발환경 구축하기 - 개요 (raspberry PI & git & bitrise & firebase & slack & telegram)

제가 구축해 사용하고 있는 개발환경을 소개합니다. (Android를 기준으로 그렸지만 iOS도 동일합니다)

Open Source로 공개할 프로젝트라도 우선은 아래와 같이 Private Repository를 이용해 작업합니다.

지금은 NAS도 있지만 처음 구축을 라즈베리파이에 해서 그대로 이용 중이고, NAS는 백업 & 공유용으로 사용하고 있습니다.

 

위 구성을 간략하게 설명하면,

  1. 라즈베리파이를 이용해 private repository를 사용합니다.
  2. git에 commit 하기 전에 ktlint로 코드 컨벤션 검사를 합니다.
  3. git에 push 하면 텔레그램으로 push 된 branch 명을 전송합니다.
  4. git-flow를 사용하고, develop branch로 push 하면 bit rise를 통해 빌드합니다. (feature 등의 branch는 자동 빌드하지 않고 develop만 자동으로 빌드합니다)
  5. bitrise에서 자동 빌드된 결과를 Slack으로 전송합니다.
  6. 빌드 성공시 bitrise와 Friebase App Distribution를 통해 apk를 배포하고 Slack으로 전송합니다.
  7. 매일 새벽 2시에 NAS로 자동 백업하고 텔레그램으로 결과를 전송합니다.

1. 라즈베리파이를 이용해 private repository를 사용합니다.

github를 사용할 수도 있지만, 혹시라도 보안에 민감한 프로젝트일 경우를 대비해 Private Repository를 도입했습니다.

2. git에 commit 하기 전에 ktlint로 코드 컨벤션 검사를 합니다.

개인의 실수로라도 코드가 더러워지는 꼴은 못보기에 ktlint로 코드 컨벤션 검사를 합니다. 설정은 기본 Kotlin Format을 따릅니다. (tab size가 2인 것 조차도)

3. git에 push 하면 텔레그램으로 push 된 branch 명을 전송합니다.

Slack Bot을 만들 생각도 했지만, 기존에 텔레그램을 사용하고 있는 서비스들이 많아, 기존데로 Telegram Bot을 이용하기로 했습니다.

4. git-flow를 사용하고, develop branch로 push 하면 bit rise를 통해 빌드합니다. (feature 등의 branch는 자동 빌드하지 않고 develop만 자동으로 빌드합니다)

bitrise 무료 티어를 사용중이라, 자동 빌드 횟수를 최대한 줄이기위해 develop branch가 push될 때만 자동 빌드되도록 했습니다. release, hot fix 등은 안전을 위해서 직접 확인하고 빌드합니다. (feature를 finish해 develop으로 merge될 때와 develop에서 직접 수정한 뒤 commit&push 할 때만 자동빌드 됩니다)

5. bitrise에서 자동 빌드된 결과를 Slack으로 전송합니다.

일관성을 위해 Telegram을 사용할까도 생각했지만, 그러다간 Slack을 써 볼 기회가 영영 없을 것 같아 굳이 넣었습니다. ㅎㅎ

6. 빌드 성공시 bitrise와 Friebase App Distribution를 통해 apk를 배포하고 Slack으로 전송합니다.

갑님들께 현업 및 테스터 분들께 APK를 전달합니다. Firebase의 Test Lab을 적용하기 위해 테스트 중입니다.

7. 매일 새벽 2시에 NAS로 자동 백업하고 텔레그램으로 결과를 전송합니다.

결과적으로 소스는 개인 작업 PC, 라즈베리파이, NAS 3곳에 백업됩니다.

앞으로 진행할 글의 목록은 다음과 같습니다.

Native(Android, iOS) 개인 개발환경 구축하기

  1. 개요 (raspberry PI & git & bitrise & firebase & slack & telegram) < 현재 포스트 입니다
  2. git commit 전에 ktlint, push된 이후에 자동빌드 하기 (ktlint, git hook, bitrise web hook)
  3. bitrise로 자동 빌드 하기

그 외에 필요한 지식은 아래 정도로 이해하고 있으면 수월합니다.

  • 암호화 기법 (대칭키, 비대칭키)
  • Gradle 기본
  • git 사용법
  • git hook

Reference

 

반응형