Flutter의 GitHub Actions 사용법과 CI/CD 설정 방법
Flutter 프로젝트에서 GitHub Actions을 사용하면 빌드, 테스트, 배포 과정을 자동화할 수 있습니다. 이를 통해 코드 변경 사항이 있을 때마다 자동으로 테스트를 실행하고, 앱을 빌드하며, 필요하면 배포까지 수행할 수 있습니다.
이 글에서는 Flutter 프로젝트에서 GitHub Actions을 설정하고, CI/CD 파이프라인을 구축하는 방법을 설명하겠습니다.
1. GitHub Actions이란?
GitHub Actions는 GitHub 저장소에서 직접 CI/CD(지속적 통합 및 지속적 배포)를 실행할 수 있는 기능입니다. 이를 사용하면 코드가 변경될 때마다 자동으로 빌드 및 테스트를 수행할 수 있습니다.
Flutter에서 GitHub Actions을 활용하면 다음과 같은 장점이 있습니다.
- 자동화된 빌드 및 테스트: 새로운 코드가 푸시될 때마다 자동으로 실행
- 배포 프로세스 자동화: 앱을 Play Store 및 App Store에 쉽게 배포 가능
- 개발 생산성 향상: 코드 검증이 자동으로 이루어짐
이제 GitHub Actions을 사용하여 Flutter CI/CD 환경을 설정하는 방법을 살펴보겠습니다.
2. GitHub Actions 설정 환경
(1) GitHub 저장소 준비
Flutter 프로젝트를 GitHub 저장소에 푸시해야 합니다. GitHub Actions은 저장소 내부의 .github/workflows
디렉토리에서 설정 파일을 찾습니다.
(2) GitHub Actions 워크플로우 파일 생성
다음 명령어를 실행하여 워크플로우 설정 파일을 생성합니다.
mkdir -p .github/workflows
touch .github/workflows/flutter-ci.yml
이제 flutter-ci.yml
파일을 수정하여 Flutter 프로젝트에 맞게 CI/CD를 설정할 수 있습니다.
3. GitHub Actions을 활용한 기본 CI/CD 설정
(1) Flutter 빌드 및 테스트 자동화
다음은 Flutter 프로젝트에서 빌드 및 테스트를 자동화하는 GitHub Actions 설정 파일입니다.
name: Flutter CI/CD
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build-test:
runs-on: ubuntu-latest
steps:
- name: 저장소 체크아웃
uses: actions/checkout@v2
- name: Flutter 설정
uses: subosito/flutter-action@v2
with:
flutter-version: "3.0.0"
- name: 의존성 설치
run: flutter pub get
- name: 코드 포맷 검사
run: flutter format --set-exit-if-changed .
- name: 유닛 테스트 실행
run: flutter test --coverage
- name: APK 빌드
run: flutter build apk --release
(2) GitHub Actions 실행 확인
이제 코드를 GitHub에 푸시하면 자동으로 CI/CD가 실행됩니다.
- GitHub 저장소에서
Actions
탭으로 이동 - 실행 중인 워크플로우를 확인하고 로그를 살펴보기
- 빌드 및 테스트가 성공적으로 완료되었는지 확인
4. Firebase App Distribution을 활용한 배포 자동화
Flutter 앱을 Firebase App Distribution을 사용하여 내부 테스터에게 배포할 수 있습니다.
(1) Firebase CLI 설치
curl -sL https://firebase.tools | bash
(2) Firebase 로그인
firebase login
(3) Firebase 배포 설정 추가
다음 코드를 .github/workflows/flutter-ci.yml
에 추가합니다.
- name: Firebase App Distribution 배포
run: |
firebase appdistribution:distribute build/app/outputs/flutter-apk/app-release.apk \
--app YOUR_FIREBASE_APP_ID \
--groups internal-testers \
--release-notes "New release from GitHub Actions"
5. Google Play Store 자동 배포
Flutter 앱을 Google Play Store에 자동으로 배포하려면 fastlane을 사용할 수 있습니다.
(1) Fastlane 설치
gem install fastlane
(2) Fastlane 설정
cd android
fastlane init
(3) Fastlane 배포 스크립트 추가
android/fastlane/Fastfile
에 다음 코드를 추가합니다.
platform :android do
desc "Google Play Store 배포"
lane :deploy do
gradle(task: "bundleRelease")
upload_to_play_store(track: "internal")
end
end
(4) GitHub Actions에서 Fastlane 실행
- name: Fastlane으로 Google Play Store 배포
run: |
cd android
fastlane deploy
6. iOS 앱 빌드 및 배포
iOS 앱을 GitHub Actions에서 빌드하려면 macOS
환경이 필요합니다.
(1) iOS 빌드 실행
- name: iOS 빌드
runs-on: macos-latest
steps:
- name: 저장소 체크아웃
uses: actions/checkout@v2
- name: Flutter 설정
uses: subosito/flutter-action@v2
with:
flutter-version: "3.0.0"
- name: 의존성 설치
run: flutter pub get
- name: iOS 빌드
run: flutter build ios --no-codesign
결론
Flutter에서 GitHub Actions을 활용하면 CI/CD 프로세스를 자동화하여 개발 생산성을 높일 수 있습니다.
- GitHub Actions를 사용하여 빌드 및 테스트 자동화
- Firebase App Distribution을 이용한 내부 배포
- Fastlane을 활용한 Google Play Store 자동 배포
- iOS 빌드 자동화를 통해 App Store 배포 가능
이제 GitHub Actions을 활용하여 더욱 효율적인 Flutter 앱 개발 및 배포 환경을 구축해 보세요!
'Flutter' 카테고리의 다른 글
Flutter의 Codemagic 사용법과 CI/CD 설정 방법 (1) | 2025.03.29 |
---|---|
Flutter의 Bitrise 사용법과 CI/CD 설정 방법 (0) | 2025.03.29 |
Flutter의 CI/CD 설정 방법과 활용 (0) | 2025.03.29 |
Flutter의 테스트 커버리지 측정 방법과 활용 (0) | 2025.03.29 |
Flutter의 자동화 테스트(Automated Testing) 방법과 활용 (0) | 2025.03.29 |