클라이언트 앱 CI/CD 가이드
작성일: 2026-04-06 Last Updated: 2026-04-06 대상: Browser Extension, Tauri Desktop, Flutter Mobile
목차
1. 빌드 파이프라인 개요
GitHub Actions 기반 파이프라인 구조
push/PR → Lint & Test → Build → Sign → Upload Artifact → Deploy/Publish
공통 워크플로우 파일 구조
.github/workflows/
+-- ci-common.yml # 공통 lint, test
+-- ci-browser-ext.yml # Browser Extension 빌드
+-- ci-tauri.yml # Tauri 빌드
+-- ci-flutter.yml # Flutter 빌드
+-- release-browser-ext.yml # Browser Extension 릴리즈
+-- release-tauri.yml # Tauri 릴리즈
+-- release-flutter.yml # Flutter 릴리즈
트리거 조건
| 이벤트 | CI (테스트/빌드) | CD (배포) |
|---|---|---|
push to develop | O | X |
pull_request to main | O | X |
push to main | O | staging |
tag v*.. | O | production |
workflow_dispatch | O | 수동 선택 |
2. 멀티 플랫폼 빌드 매트릭스
Browser Extension
strategy:
matrix:
browser: [chrome, firefox]
# Edge는 Chrome 빌드와 동일 (manifest 분기)
| 항목 | Chrome (MV3) | Firefox (MV3) |
|---|---|---|
| 매니페스트 | manifest.chrome.json | manifest.firefox.json |
| 빌드 출력 | .zip (CWS용) | .zip (AMO용) |
| Runner | ubuntu-latest | ubuntu-latest |
| 서명 | CWS API로 업로드 시 자동 | web-ext sign |
Tauri Desktop
strategy:
matrix:
include:
- platform: ubuntu-22.04
target: x86_64-unknown-linux-gnu
- platform: macos-latest
target: aarch64-apple-darwin
- platform: macos-latest
target: x86_64-apple-darwin
- platform: windows-latest
target: x86_64-pc-windows-msvc
| OS | 빌드 출력 | Runner |
|---|---|---|
| Linux | .deb, .AppImage | ubuntu-22.04 |
| macOS (ARM) | .dmg, .app | macos-latest (M1) |
| macOS (Intel) | .dmg, .app | macos-latest |
| Windows | .msi, .exe (NSIS) | windows-latest |
Flutter Mobile
strategy:
matrix:
include:
- platform: android
runner: ubuntu-latest
- platform: ios
runner: macos-latest
| OS | 빌드 출력 | Runner | 비고 |
|---|---|---|---|
| Android | .aab (Play Store), .apk (직접 배포) | ubuntu-latest | JDK 17, Android SDK |
| iOS | .ipa | macos-latest | Xcode 15+, CocoaPods |