안드로이드 개발을 하다보면 apk를 추출해야 될 경우가 생긴다.
특히, 앱 파트와 서버 파트를 구분해서 분업을 하거나, 디자이너와 같이 협업을 하는 경우 테스트를 위해서 apk를 추출해야하는 경우가 많다.
기존엔 Android Studio에서 apk를 추출 -> 카카오톡으로 전송 -> 압축 해제 후 설치 라는 번거로운 과정을 거쳤었다.
맨날 추출하면서도 너무 귀찮고 파일도 쌓이고 불편했었는데, 이번 프로젝트에 CI/CD를 도입하게 되면서 Github Actions을 접하게 되었다.
이번 글에서는 Github Actions으로 Apk 파일을 자동으로 생성하고, Github에 업로드하는 방법을 기록하려고 한다.
Github Actions 설정
Github 리포지터리에 들어가보면, Actions라는 탭이 있다. 해당 탭을 클릭하면 Github에서 제공하는 여러가지 템플릿 등이 있는데, 이번 글에서는 직접 작성하도록 한다.
빌드 과정을 자동화하고 싶다면 템플릿 중에 Android CI 템플릿을 사용하면 된다.
apk_release.yml 파일 작성
먼저, apk를 자동으로 생성할 .yml 파일을 작성한다.
해당 파일은 .github/workflows/ 디렉토리를 만들고 그 안에 작성하면 된다.
name 설정
workflows의 이름이다. 원하는 이름으로 작성하면 된다.
name: Create Debug APK
Actions 탭에서 아래와 같이 이름이 표시된다.
이벤트 설정
어느 브랜치에 어떤 이벤트가 발생했을 때 이 workflows를 실행할 건지를 설정하는 부분이다.
아래 코드의 경우 develop 브랜치에서 push가 일어난 경우 해당 workflows를 실행한다는 뜻이다.
on:
push:
branches: [ "develop" ]
여러 이벤트를 주거나, 여러 브랜치에 설정하고 싶다면 아래와 같이 작성해주면 된다.
on:
push:
branches: [ "develop" ]
pull_request:
branches: [ "main", "develop" ]
jobs 설정
이제 동작할 내용들을 작성하면 된다.
운영체제는 ubuntu-lastet 버전을 사용하고, Java는 11 버전을 사용하도록 설정한다.
먼저 Debug 모드로 빌드를 한 후 추출된 apk를 Github Actions의 Artifacts 탭에 업로드한다.
jobs:
apk: # jobs 이름
name: Generate APK
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
cache: gradle
# debug 모드로 빌드
- name: Build debug APK
run: bash ./gradlew assembleDebug --stacktrace
# Actions에 artifact 항목에 APK 업로드
# path는 실제 apk가 추출되는 경로와 동일해야 함
- name: Upload Debug APK
uses: actions/upload-artifact@v3
with:
name: app
path: presentation/build/outputs/apk/debug
path는 실제로 apk가 추출되는 경로와 같아야한다.
Android Studio 터미널에서 프로젝트 디렉토리로 이동한 후 ./gradlew assembleDebug 명령어를 실행했을 때 apk가 생기는 곳의 경로를 적어주면 된다.
Android Studio에서 build 탭을 눌러서 Apk를 추출하는 방법으로 했을 때와 경로가 다를 수 있다. 위의 방법으로 확인하는 것을 추천한다.
* 혹시나 release로 apk를 추출하고 싶다면 assembleDebug 대신 assembleRelease를 사용하면 된다. (path도 같이 수정)
Workflows 업로드
.yml 파일을 다 작성하면 git에 업로드 해주면 된다.
develop에 push가 발생했을 때 동작하도록 설정 해놓았으니, 다른 브랜치를 파서 merge를 시키거나, develop에서 바로 push하여 올려주면 동작한다.
위와 같이 성공적으로 동작이 완료 되면 초록색 체크가 표시된다.
해당 항목을 클릭하면 세부적으로 확인할 수 있다.
Workflows 항목을 눌러서 들어가보면 아래에 Artifacts에 app이라는 이름으로 apk가 업로드 된 것을 볼 수 있다.
이렇게 Github Actions를 활용하여 push만 하면 손쉽게 apk를 추출할 수 있다.
'프로젝트 관리 & 협업 > Github' 카테고리의 다른 글
[ Github ] - Github Actions을 활용하여 apk 자동 업로드하기 (0) | 2023.03.27 |
---|---|
[ Github ] - Github Actions를 활용하여 release 자동으로 생성하기 (0) | 2023.03.24 |
[ Github ] - Github Issue, 프로젝트 개발 과정을 잘 남기는 법 (0) | 2023.02.25 |