Flutter의 Travis CI 사용법과 CI/CD 설정 방법
Flutter 프로젝트에서 Travis CI를 사용하면 코드 변경 사항이 있을 때마다 자동으로 빌드, 테스트, 배포할 수 있습니다. Travis CI는 오픈소스 프로젝트와 유료 서비스에서 널리 사용되는 클라우드 기반 CI/CD 도구로, GitHub과 원활하게 통합됩니다.
이 글에서는 Travis CI를 활용하여 Flutter 프로젝트의 CI/CD 환경을 설정하는 방법을 설명하고, Firebase 및 Google Play Store 배포 방법을 소개하겠습니다.
1. Travis CI란?
Travis CI는 GitHub 저장소와 직접 연동하여 코드 변경이 있을 때마다 자동으로 빌드 및 테스트를 실행하는 클라우드 기반 CI/CD 플랫폼입니다.
Flutter에서 Travis CI를 활용하면 다음과 같은 장점이 있습니다.
- 자동화된 빌드 및 테스트: 코드 변경 시 자동 실행
- 간편한 설정: YAML 파일을 활용하여 CI/CD 설정 가능
- 배포 자동화: Firebase, Google Play Store, App Store 배포 가능
이제 Travis CI를 사용하여 Flutter 프로젝트의 CI/CD 환경을 설정하는 방법을 살펴보겠습니다.
2. Travis CI 환경 설정
(1) GitHub 저장소와 Travis CI 연동
- Travis CI 웹사이트에 접속하여 GitHub 계정으로 로그인합니다.
- GitHub 저장소를 선택한 후 Travis CI에서 활성화합니다.
- Flutter 프로젝트의 루트 디렉토리에
.travis.yml
파일을 생성합니다.
(2) Travis CI에서 실행할 작업
Travis CI에서 다음과 같은 작업을 수행할 수 있습니다.
- Flutter 환경 설정
- 의존성 설치 (
flutter pub get
) - 유닛 테스트 실행 (
flutter test
) - 테스트 커버리지 측정 (
flutter test --coverage
) - 앱 빌드 (
flutter build apk
및flutter build ios
) - 앱 배포 (Firebase 및 Google Play Store)
3. Travis CI에서 Flutter 빌드 및 테스트 설정
(1) 기본 Travis CI 설정 파일 작성
Flutter 프로젝트의 루트 디렉토리에 .travis.yml
파일을 생성하고 다음 내용을 추가합니다.
language: dart
jobs:
include:
- stage: "Test & Build"
script:
- echo "Setting up Flutter"
- git clone https://github.com/flutter/flutter.git -b stable --depth 1
- export PATH="$PWD/flutter/bin:$PATH"
- flutter --version
- echo "Installing dependencies"
- flutter pub get
- echo "Running tests"
- flutter test --coverage
- echo "Building Android APK"
- flutter build apk --release
- echo "Building iOS"
- flutter build ios --no-codesign
(2) Travis CI 실행 확인
- GitHub 저장소에
.travis.yml
파일을 커밋하고 푸시합니다. - Travis CI 대시보드에서 빌드가 자동으로 실행되는지 확인합니다.
- 로그에서 빌드 및 테스트가 정상적으로 실행되었는지 확인합니다.
4. Firebase App Distribution을 활용한 배포
Travis CI를 사용하여 Firebase App Distribution에 자동으로 앱을 배포할 수 있습니다.
(1) Firebase API 키 설정
- Firebase Console에서 Firebase API 키를 생성합니다.
- Travis CI의 환경 변수에
FIREBASE_API_TOKEN
을 추가합니다.
(2) Firebase 배포 설정 추가
- stage: "Deploy to Firebase"
script:
- echo "Deploying APK to Firebase"
- firebase appdistribution:distribute build/app/outputs/flutter-apk/app-release.apk \
--app YOUR_FIREBASE_APP_ID \
--groups internal-testers \
--release-notes "New release from Travis CI"
이제 빌드가 완료되면 자동으로 Firebase에 업로드됩니다.
5. Google Play Store 자동 배포
Travis CI를 사용하여 Flutter 앱을 Google Play Store에 자동으로 배포할 수 있습니다.
(1) Google Play API 설정
- Google Play Console에서 서비스 계정을 생성합니다.
- Travis CI 환경 변수에 JSON 키 파일을 업로드합니다.
(2) Google Play 배포 설정 추가
- stage: "Deploy to Google Play Store"
script:
- echo "Deploying APK to Google Play Store"
- fastlane supply --json_key play-store-key.json \
--package_name com.example.app \
--track internal
이제 Travis CI에서 Google Play Store에 자동으로 앱을 배포할 수 있습니다.
6. iOS 앱 빌드 및 배포
iOS 앱을 App Store Connect에 배포하려면 macOS 환경에서 실행해야 합니다.
(1) iOS 빌드 실행
- stage: "Build iOS"
os: osx
script:
- echo "Building iOS app"
- flutter build ios --no-codesign
(2) App Store 배포
- stage: "Deploy to App Store Connect"
os: osx
script:
- echo "Deploying iOS app to App Store Connect"
- fastlane deliver --ipa build/ios/iphoneos/App.ipa \
--app_identifier com.example.app \
--username your-apple-id
이제 Travis CI에서 iOS 앱을 자동으로 App Store Connect에 업로드할 수 있습니다.
결론
Travis CI를 활용하면 Flutter 앱의 CI/CD를 자동화하여 개발 생산성을 높일 수 있습니다.
- Travis CI Workflow를 사용하여 빌드 및 테스트 자동화
- Firebase App Distribution을 활용한 내부 배포
- Fastlane을 활용한 Google Play Store 및 App Store 배포
이제 Travis CI를 활용하여 더욱 효율적인 Flutter 앱 개발 및 배포 환경을 구축해 보세요!
'Flutter' 카테고리의 다른 글
Flutter의 Fastlane 사용법과 자동 배포 설정 방법 (0) | 2025.03.30 |
---|---|
Flutter의 Jenkins 사용법과 CI/CD 설정 방법 (0) | 2025.03.30 |
Flutter의 Codemagic 사용법과 CI/CD 설정 방법 (1) | 2025.03.29 |
Flutter의 Bitrise 사용법과 CI/CD 설정 방법 (0) | 2025.03.29 |
Flutter의 GitHub Actions 사용법과 CI/CD 설정 방법 (0) | 2025.03.29 |