Study + Daily = Steadily 자세히보기

Development/Android

Android 배포자동화(fastlane + github actions) - Part.3

레카아범 2022. 4. 11. 02:11
반응형

<Prev

 

이제 실제로 fastlane을 사용하여 앱을 빌드하고 빌드 된 앱을 App Distribution을 사용해 QA팀에게 배포하는 과정이다.

굉장히 지난한 과정 같지만 해당 과정만 잘 동작하면 나머지는 깃 헙 액션을 통해 트리거를 만들어 특정 상황에서 fastlane을 실행시켜주는 과정만이 남았다.

 물론 현업에서 실제로 사용할 만큼의 Fastfile을 작성하고 빌드 환경에 맞춰 수정하려면 다른 사람들이 작성한 Fastfile을 찾아보며 본인에 게 맞게 작성해 줘야하겠지만 git에 많은 reference가 존재하므로 크게 어려운 작업은 아닐것이다.

 

프로젝트 root 디렉토리에서 다음 명령어를 입력하여 app distribution 플러그인을 설치한다

fastlane add_plugin firebase_app_distribution

 

 

이전 포스트에서 다운로드 받은 비공개 키(json 파일)을 fastlane 폴더 안으로 옮겨준다. 

default_platform(:android)
platform :android do
  desc "auto deploy for qa"
  lane :qa do
    build_android
    firebase_distribution
  end

  desc "build android"
  lane :build_android do 
    gradle(task: "clean assembleRelease -PisDebug=true")
  end

  lane :firebase_distribution do 
    firebase_app_distribution(
      app: "이곳에 APP ID를 입력합니다.",
      service_credentials_file: "./fastlane/$비공개키파일명",
      groups: "app distribution에 등록된 그룹명을 입력합니다.",
      debug: true
    )
  end
end

해당 파일에 대한 자세한 내용은 공식 문서를 통해 확인하도록 하자.

간략하게 설명하자면 각 lane을 함수정도로 생각하면 될 것 같다. shell 에서 해당 lane을 실행하면 작성한 lane을 실행한다.

위의 작성된 내용은 쉘에서 `fastlane qa`를 실행하면 그래들을 이용해 앱을 빌드하고 빌드된 앱을 플러그인을 통해 배포한다는 내용이다.

 

firebase_app_distribution에서 필요한 App ID는 Firebase console 내의 프로젝트 설정에서 확인할 수 있다.

service_credentials_file은 fastlane 폴더로 옮겨둔 비공개 키의 path를 넣어주면 된다.

마지막 파라미터인 debug의 값을 true로 설정하면 배포 실패 시의 로그 확인이 한결 편해진다.

 

buildFlavor를 사용하여 다양한 빌드 환경을 사용한다면 `build_android` lane에서 분기문을 사용해주면 관리가 간편해진다.

 

이제 파일을 저장하고 다음 명령어를 실행해보자

fastlane qa

 

빌드 및 배포가 성공적으로 됐다면 다음과 같은 화면을 확인할 수 있다.

 

 

다음 포스트는 지금까지 작성한 fastlane파일들을 github actions을 사용하여 특정 상황(pr 혹은 push)에서 자동으로 배포될 수 있게 설정하는 작업을 포스팅하도록 하겠다

 

<Prev

반응형