본문 바로가기
안드로이드

[안드로이드] Github Actions으로 구글 플레이스토어 배포

by keel_im 2021. 2. 17.
반응형

---다음 글---

2021.08.26 - [안드로이드] - [안드로이드] Github Actions으로 구글 플레이스토어 배포 with google-services.json

 

[안드로이드] Github Actions으로 구글 플레이스토어 배포 with google-services.json

---이전 글--- 2021.02.17 - [안드로이드] - [안드로이드] Github Actions으로 구글 플레이스토어 배포 [안드로이드] Github Actions으로 구글 플레이스토어 배포 안녕하세요!! 오늘은 간단하게 CI/CD를 구성하여

keelim.tistory.com

안녕하세요!!

오늘은 간단하게 CI/CD를 구성하여 안드로이드 앱을 Signing 하여 배포하는 방법을 알아보려고 합니다. 사실 이 글의 발단은 저의 노트북이 너무 열 받아서 이제 힘을 못쓴다는 것입니다.

항상 CI/CD 를 필요하다고 생각을 하였지만 항상 로컬에서 일일이 배포를 하는 것에 저의 불쌍한 노트북은 결국 열을 너무 많이 받아서 ㅠㅠㅠㅠ. Android Studio Artic Fox를 사용하지만 더 열이 나는 느낌?

그래서 저는 더이상 로컬에서 테스트는 하더라도 Signing 빌드를 하지 말자라고 다짐을 했습니다. 사실 여러 솔루션들이 있습니다. 

여러 가지 CI/CD 

Jenkins
www.jenkins.io/

 

Jenkins

Jenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their software

www.jenkins.io

TravisCI
travis-ci.org/

 

Travis CI - Test and Deploy Your Code with Confidence

 

travis-ci.org

Britise
www.bitrise.io/

 

Bitrise - Mobile Continuous Integration and Delivery

Continuous integration and delivery built for mobile: Automate iOS and Android builds, testing and deployment from your first install to the one millionth.

www.bitrise.io

fastlane
fastlane.tools/

 

fastlane - App automation done right

The easiest way to build and release mobile apps. fastlane handles tedious tasks so you don’t have to. Developer hours saved 10,558,200

fastlane.tools

appcenter.ms/

 

Visual Studio App Center | iOS, Android, Xamarin & React Native

Ship fixes and enhancements as fast as you build them. Whether you prefer private distribution, public open betas, Microsoft Intune, TestFlight, Google Play, or the App Store, App Center makes releasing your app a delight.

appcenter.ms

위 링크들을 따라가시면 여러 가지 정보를 찾을 수 있습니다. 


근데 왜 하필 Github Actions 인가?

 사실 그냥 제 자신하고 타협을 했습니다. 아직 너의 어플은 매우 작으니 그렇게 큰 규모의 툴을 사용할 필요가 없다.라고요. 사실 Britise를 찾아보다가 허걱;;; 가난한 저에게는 매우 좋은 Github Actions 가 있었습니다. 

Github Actions 를 오픈 때부터 그냥 흘깃흘깃 보다가 이번에 본격 적으로 사용해보니 재밌더라구여 ㅎㅎ

github.com/keelim/nandaDiagnosis/blob/master/.github/workflows/android.yml

 

GitHub - keelim/nandaDiagnosis: Hi This is keelim`s android project

Hi This is keelim`s android project. Contribute to keelim/nandaDiagnosis development by creating an account on GitHub.

github.com

 Github Actions 에 여러 가지를 Marketplace에서 활용을 할 수 있는데 저는 r0akdll 께서 제공하는 것을 사용했습니다. 진짜 편합니다.👍👍👍

우리가 해줄 것은 위에 코드를 Actions 반영을 해주고 처리해 줄 것은 5가지  밖에 없습니다.
바로 {{ secretes.~~}} 처리 입니다. 

repo에서 Settings -> Secrets --> Actions Secrets에서 설정을 할 수 있다. 


Action Secrets 란

Secrets are environment variables that are encrypted. Anyone with collaborator access to this repository can use these secrets for Actions.

Secrets are not passed to workflows that are triggered by a pull request from a fork. Learn more.


이라고 기재가 되어 있는데 환경 변수를 암호화 해주는 공간이라 생각하시면 쉽습니다. 이게 좋은 점이 편집할 때마다 기존의 값을 볼 수 없이 그냥 새로운 값을 입력하게 되어 있어서 개인적으로 더 보안이 되는 듯한 느낌이었습니다. 

이렇게 작성을 해주시면 됩니다. 위에서 부터 

1 - ALIAS 기존 jks 의 ALIAS를 적어주시면 됩니다.
2 - KEY_PASSWORD key password 를 적어주시면 됩니다
3 - KEY_STORE_PASSWORD keystore password를 적어주시면 됩니다. (어느 순간 key password 하고 같아야 하더라고요)

제일 중요한 
4 - developer console에서 Service Account JSON을 가져와야 합니다. (이와 관련된 내용은 다음 포스팅에서)

5 - SIGNING_KEY는 base64로 인코딩 된 jks 키 스토어입니다.  Google 님 도움으로 base64로 인코딩하여 값을 넣어줍니다.

이렇게 환경 변수를 설정해주기만 하면

위처럼 바로 빌드가 될 수 있음을 확인할 수 있습니다. (너무나 신기한 것) 저는 실험을 하기 위해 바로 프로덕션으로 진행을 하였지만 Beta track부터 진행하는 게 좋을 것 같습니다. 

포스팅은 여기까지 해서 마치겠습니다. 여러 이슈들이 있었는데 관련 내용은 따로 또 포스팅할 기회가 있었으면 합니다. 사실 개인적으로 이번 CI/CD 세팅은 맛보기에 불과하고 점차 fastlane?, Appcenter? 여러 가지 적용을 해보면서 저에게 맞는 환경을 찾고자 합니다.

이와 같은 경험이 저와 같은 학생 개발자 친구들이 빌드하는데 좀 더 편리하게 하였으면 하는 바람입니다. 

반응형

댓글