project-auto-wizard 0.12.0 → 0.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -8
- package/package.json +1 -1
- package/payload/config/breaking-changes.json +1 -1
- package/payload/scripts/__pycache__/changelog_manager.cpython-314.pyc +0 -0
- package/payload/scripts/__pycache__/issue_helper.cpython-314.pyc +0 -0
- package/payload/scripts/__pycache__/version_manager.cpython-314.pyc +0 -0
- package/payload/scripts/changelog_manager.py +4 -4
- package/payload/scripts/version_manager.py +2 -2
- package/payload/version.yml.template +0 -2
- package/payload/workflows/common/PROJECT-COMMON-AI-PR-SUMMARY.yaml +0 -4
- package/payload/workflows/common/PROJECT-COMMON-AUTO-CHANGELOG-CONTROL.yaml +2 -7
- package/payload/workflows/common/PROJECT-COMMON-ISSUE-HELPER.yaml +3 -6
- package/payload/workflows/common/PROJECT-COMMON-README-VERSION-UPDATE.yaml +0 -12
- package/payload/workflows/common/PROJECT-COMMON-RELEASE-PUBLISH.yaml +2 -6
- package/payload/workflows/common/PROJECT-COMMON-VERSION-CONTROL.yaml +3 -7
- package/payload/workflows/flutter/PROJECT-FLUTTER-ANDROID-FIREBASE-CICD.yaml +7 -34
- package/payload/workflows/flutter/PROJECT-FLUTTER-ANDROID-PLAYSTORE-CICD.yaml +2 -25
- package/payload/workflows/flutter/PROJECT-FLUTTER-ANDROID-SELFHOSTED-CICD.yaml +2 -20
- package/payload/workflows/flutter/PROJECT-FLUTTER-ANDROID-TEST-APK.yaml +5 -30
- package/payload/workflows/flutter/PROJECT-FLUTTER-APP-BUILD-TRIGGER.yaml +0 -4
- package/payload/workflows/flutter/PROJECT-FLUTTER-CI.yaml +7 -51
- package/payload/workflows/flutter/PROJECT-FLUTTER-IOS-TEST-TESTFLIGHT.yaml +5 -29
- package/payload/workflows/flutter/PROJECT-FLUTTER-IOS-TESTFLIGHT.yaml +9 -29
- package/payload/workflows/go/PROJECT-GO-CI.yaml +5 -28
- package/payload/workflows/go/PROJECT-GO-PR-PREVIEW.yaml +19 -99
- package/payload/workflows/go/PROJECT-GO-SIMPLE-CICD.yaml +18 -89
- package/payload/workflows/next/PROJECT-NEXT-CI.yaml +11 -41
- package/payload/workflows/next/PROJECT-NEXT-CICD.yaml +9 -45
- package/payload/workflows/python/PROJECT-PYTHON-CI.yaml +1 -27
- package/payload/workflows/python/PROJECT-PYTHON-PR-PREVIEW.yaml +14 -97
- package/payload/workflows/python/PROJECT-PYTHON-SIMPLE-CICD.yaml +14 -92
- package/payload/workflows/react/PROJECT-REACT-CI.yaml +11 -40
- package/payload/workflows/react/PROJECT-REACT-CICD.yaml +9 -43
- package/payload/workflows/spring/{nexus/PROJECT-SPRING-NEXUS-CI.yml → PROJECT-SPRING-CI.yml} +2 -25
- package/payload/workflows/spring/server-deploy/PROJECT-SPRING-NONSTOP-NGINX-CICD.yaml +19 -63
- package/payload/workflows/spring/server-deploy/PROJECT-SPRING-NONSTOP-TRAEFIK-CICD.yaml +19 -59
- package/payload/workflows/spring/server-deploy/PROJECT-SPRING-PR-PREVIEW.yaml +23 -86
- package/payload/workflows/spring/server-deploy/PROJECT-SPRING-SIMPLE-CICD.yaml +20 -80
- package/src/cli/args.js +1 -15
- package/src/cli/help.js +0 -2
- package/src/commands/doctor.js +5 -5
- package/src/commands/dry-run.js +1 -1
- package/src/commands/full.js +9 -10
- package/src/commands/interactive-flutter.js +1 -1
- package/src/commands/interactive.js +25 -46
- package/src/commands/purge.js +2 -2
- package/src/commands/status.js +4 -6
- package/src/commands/uninstall.js +3 -4
- package/src/context.js +4 -6
- package/src/core/assets.js +2 -2
- package/src/core/baseline.js +1 -1
- package/src/core/branches.js +3 -3
- package/src/core/breaking-check.js +1 -1
- package/src/core/breaking.js +1 -1
- package/src/core/copy/flutter-app.js +2 -2
- package/src/core/copy/gitignore.js +8 -8
- package/src/core/copy/workflows.js +24 -69
- package/src/core/deploy-style.js +2 -2
- package/src/core/detect-fs.js +11 -11
- package/src/core/detect.js +7 -7
- package/src/core/flutter-options.js +1 -1
- package/src/core/installed-stores.js +1 -1
- package/src/core/logger.js +1 -1
- package/src/core/paths-resolve.js +1 -1
- package/src/core/removal-plan.js +4 -4
- package/src/core/verify.js +3 -3
- package/src/core/version-yml.js +17 -33
- package/src/core/wizard-env.js +4 -4
- package/src/index.js +12 -14
- package/src/ui/banner.js +2 -2
- package/src/ui/env-plan.js +10 -16
- package/src/ui/prompts.js +9 -14
- package/src/ui/status-cards.js +10 -12
- package/src/ui/summary.js +9 -9
- package/payload/workflows/common/secret-backup/PROJECT-COMMON-SECRET-FILE-UPLOAD.yaml +0 -210
- package/payload/workflows/spring/nexus/PROJECT-SPRING-GITHUB-PACKAGES-PUBLISH.yml +0 -92
- package/payload/workflows/spring/nexus/PROJECT-SPRING-NEXUS-PUBLISH.yml +0 -70
- package/src/core/options-ask.js +0 -102
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
# project-auto-wizard:managed-workflow
|
|
2
|
-
# ===================================================================
|
|
3
2
|
# Flutter Android Play Store 내부 테스트 배포 워크플로우
|
|
4
|
-
# ===================================================================
|
|
5
3
|
#
|
|
6
4
|
# {{MAIN_BRANCH}} 브랜치 푸시 시 Android AAB를 빌드하고
|
|
7
5
|
# Play Store 내부 테스트에 자동 배포합니다.
|
|
8
6
|
#
|
|
9
|
-
#
|
|
10
|
-
# 🔑 필수 GitHub Secrets
|
|
11
|
-
# ===================================================================
|
|
7
|
+
# 필수 GitHub Secrets
|
|
12
8
|
# ENV_FILE 또는 ENV: .env 파일 내용 (둘 중 하나, ENV_FILE 우선)
|
|
13
9
|
# RELEASE_KEYSTORE_BASE64: 서명용 keystore (base64)
|
|
14
10
|
# RELEASE_KEYSTORE_PASSWORD: keystore 비밀번호
|
|
@@ -17,7 +13,6 @@
|
|
|
17
13
|
# GOOGLE_SERVICES_JSON: Firebase google-services.json
|
|
18
14
|
# GOOGLE_PLAY_SERVICE_ACCOUNT_JSON_BASE64: Play Console 서비스 계정 (base64)
|
|
19
15
|
# ANDROID_PACKAGE_NAME: 앱 패키지명 (Secret 우선, 없으면 Variable) — fastlane에 PACKAGE_NAME으로 전달
|
|
20
|
-
# ===================================================================
|
|
21
16
|
|
|
22
17
|
name: PROJECT-FLUTTER-ANDROID-PLAYSTORE-INTERNAL-CICD
|
|
23
18
|
|
|
@@ -37,9 +32,7 @@ on:
|
|
|
37
32
|
- store_prepare
|
|
38
33
|
- store_submit
|
|
39
34
|
|
|
40
|
-
#
|
|
41
|
-
# 🔧 프로젝트별 설정 (아래 값들을 수정하세요)
|
|
42
|
-
# ============================================
|
|
35
|
+
# 프로젝트별 설정 (아래 값들을 수정하세요)
|
|
43
36
|
env:
|
|
44
37
|
# 프로젝트 이름
|
|
45
38
|
APP_ARTIFACT_NAME: "__APP_ARTIFACT_NAME__" # @wizard ask:@repo
|
|
@@ -114,7 +107,6 @@ jobs:
|
|
|
114
107
|
dart run build_runner build --delete-conflicting-outputs
|
|
115
108
|
fi
|
|
116
109
|
|
|
117
|
-
# version_manager.py를 사용하여 현재 버전 정보 가져오기
|
|
118
110
|
- name: 현재 버전 정보 가져오기
|
|
119
111
|
id: current_version
|
|
120
112
|
working-directory: ${{ github.workspace }} # version_manager.py가 레포 루트 version.yml을 읽어야 함
|
|
@@ -142,7 +134,6 @@ jobs:
|
|
|
142
134
|
echo "TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')" >> $GITHUB_ENV
|
|
143
135
|
echo "PROJECT_TYPE=${{ env.PROJECT_TYPE }}" >> $GITHUB_ENV
|
|
144
136
|
|
|
145
|
-
# CHANGELOG.json에서 릴리즈 노트 추출 - changelog_manager.py 사용
|
|
146
137
|
- name: 릴리즈 노트 생성
|
|
147
138
|
id: release_notes
|
|
148
139
|
working-directory: ${{ github.workspace }} # CHANGELOG.json·changelog_manager.py·final_release_notes.txt(upload 짝)는 레포 루트 기준
|
|
@@ -175,7 +166,6 @@ jobs:
|
|
|
175
166
|
echo "v$VERSION 업데이트" > final_release_notes.txt
|
|
176
167
|
fi
|
|
177
168
|
|
|
178
|
-
# 릴리즈 노트를 아티팩트로 업로드
|
|
179
169
|
- name: Upload release notes
|
|
180
170
|
uses: actions/upload-artifact@v7
|
|
181
171
|
with:
|
|
@@ -215,7 +205,6 @@ jobs:
|
|
|
215
205
|
- name: Pull latest changes
|
|
216
206
|
run: git pull origin main
|
|
217
207
|
|
|
218
|
-
# 프로젝트 파일들 다운로드
|
|
219
208
|
- name: Download project files
|
|
220
209
|
uses: actions/download-artifact@v8
|
|
221
210
|
with:
|
|
@@ -237,7 +226,6 @@ jobs:
|
|
|
237
226
|
echo "dart-define file prepared"
|
|
238
227
|
fi
|
|
239
228
|
|
|
240
|
-
# Release Keystore 설정
|
|
241
229
|
- name: Setup Release Keystore
|
|
242
230
|
run: |
|
|
243
231
|
mkdir -p android/app/keystore
|
|
@@ -245,7 +233,6 @@ jobs:
|
|
|
245
233
|
echo "✅ Release Keystore 생성 완료"
|
|
246
234
|
ls -la android/app/keystore/
|
|
247
235
|
|
|
248
|
-
# key.properties 생성 (Release 서명 정보)
|
|
249
236
|
- name: Create key.properties
|
|
250
237
|
run: |
|
|
251
238
|
cat > android/key.properties << EOF
|
|
@@ -257,7 +244,6 @@ jobs:
|
|
|
257
244
|
echo "✅ key.properties 생성 완료"
|
|
258
245
|
cat android/key.properties
|
|
259
246
|
|
|
260
|
-
# Google-services.json 생성
|
|
261
247
|
- name: Create Google-services.json
|
|
262
248
|
run: |
|
|
263
249
|
cat << 'EOF' > android/app/google-services.json
|
|
@@ -301,7 +287,6 @@ jobs:
|
|
|
301
287
|
restore-keys: |
|
|
302
288
|
${{ runner.os }}-gradle-
|
|
303
289
|
|
|
304
|
-
# Android build.gradle.kts 수정 (release 서명 설정)
|
|
305
290
|
- name: Configure Android build for release
|
|
306
291
|
run: |
|
|
307
292
|
# build.gradle.kts에 release 서명 설정이 없으면 추가
|
|
@@ -314,7 +299,6 @@ jobs:
|
|
|
314
299
|
# pubspec.yaml은 x.y.z 형식 그대로 유지
|
|
315
300
|
# Flutter build 명령어의 --build-name, --build-number 플래그가 pubspec.yaml을 오버라이드함
|
|
316
301
|
|
|
317
|
-
# Flutter build appbundle (AAB 생성)
|
|
318
302
|
- name: Build Android App Bundle (AAB)
|
|
319
303
|
run: |
|
|
320
304
|
VERSION_NAME="${{ needs.prepare-build.outputs.version }}"
|
|
@@ -530,7 +514,6 @@ jobs:
|
|
|
530
514
|
echo "📱 파일 크기: $(du -h "$AAB_FILE" | cut -f1)"
|
|
531
515
|
echo "=========================================="
|
|
532
516
|
|
|
533
|
-
# AAB 파일을 아티팩트로 업로드
|
|
534
517
|
- name: Upload AAB artifact
|
|
535
518
|
uses: actions/upload-artifact@v7
|
|
536
519
|
with:
|
|
@@ -554,28 +537,24 @@ jobs:
|
|
|
554
537
|
ref: main
|
|
555
538
|
fetch-depth: 0
|
|
556
539
|
|
|
557
|
-
# Service Account JSON 설정
|
|
558
540
|
- name: Setup Google Play Service Account
|
|
559
541
|
run: |
|
|
560
542
|
mkdir -p ~/.config/gcloud
|
|
561
543
|
echo "${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT_JSON_BASE64 }}" | base64 --decode > ~/.config/gcloud/service-account.json
|
|
562
544
|
echo "✅ Service Account JSON 설정 완료"
|
|
563
545
|
|
|
564
|
-
# AAB 파일 다운로드
|
|
565
546
|
- name: Download AAB artifact
|
|
566
547
|
uses: actions/download-artifact@v8
|
|
567
548
|
with:
|
|
568
549
|
name: android-aab
|
|
569
550
|
path: ${{ env.FLUTTER_PROJECT_DIR }}/build/app/outputs/bundle/release/
|
|
570
551
|
|
|
571
|
-
# 릴리즈 노트 다운로드
|
|
572
552
|
- name: Download release notes
|
|
573
553
|
uses: actions/download-artifact@v8
|
|
574
554
|
with:
|
|
575
555
|
name: release-notes
|
|
576
556
|
path: .
|
|
577
557
|
|
|
578
|
-
# Ruby 및 Fastlane 설치
|
|
579
558
|
- name: Set up Ruby
|
|
580
559
|
uses: ruby/setup-ruby@v1
|
|
581
560
|
with:
|
|
@@ -605,7 +584,6 @@ jobs:
|
|
|
605
584
|
echo "📋 Fastfile 내용:"
|
|
606
585
|
cat android/fastlane/Fastfile
|
|
607
586
|
|
|
608
|
-
# Play Store에 업로드
|
|
609
587
|
- name: Upload to Play Store Internal Testing
|
|
610
588
|
env:
|
|
611
589
|
DEPLOY_MODE: ${{ env.DEPLOY_MODE }}
|
|
@@ -720,7 +698,6 @@ jobs:
|
|
|
720
698
|
cd android
|
|
721
699
|
bundle exec fastlane deploy_internal
|
|
722
700
|
|
|
723
|
-
# 성공 알림
|
|
724
701
|
- name: Notify Play Store Upload Success
|
|
725
702
|
if: success()
|
|
726
703
|
run: |
|
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
# project-auto-wizard:managed-workflow
|
|
2
|
-
# ===================================================================
|
|
3
2
|
# Flutter Android 자체 서버(SMB) 배포 워크플로우
|
|
4
|
-
# ===================================================================
|
|
5
3
|
#
|
|
6
4
|
# {{MAIN_BRANCH}} 브랜치 푸시 시 Android APK를 빌드하고
|
|
7
5
|
# 자체 서버(예: Synology NAS·NAS·Linux)의 SMB 공유에 APK를 배포합니다.
|
|
8
6
|
#
|
|
9
|
-
#
|
|
10
|
-
# 🔑 필수 GitHub Secrets
|
|
11
|
-
# ===================================================================
|
|
7
|
+
# 필수 GitHub Secrets
|
|
12
8
|
# ENV_FILE 또는 ENV: .env 파일 내용 (둘 중 하나, ENV_FILE 우선)
|
|
13
9
|
# RELEASE_KEYSTORE_BASE64: 서명용 keystore (base64)
|
|
14
10
|
# RELEASE_KEYSTORE_PASSWORD: keystore 비밀번호
|
|
@@ -18,7 +14,6 @@
|
|
|
18
14
|
# SERVER_HOST: 서버 호스트(SMB 접속 주소)
|
|
19
15
|
# SERVER_USER: SMB 사용자명
|
|
20
16
|
# SERVER_PASSWORD: SMB 비밀번호
|
|
21
|
-
# ===================================================================
|
|
22
17
|
|
|
23
18
|
name: PROJECT-Android-SelfHosted-CICD
|
|
24
19
|
|
|
@@ -28,9 +23,7 @@ on:
|
|
|
28
23
|
# @wizard paths-anchor (모노레포일 때 integrator가 paths 필터를 여기 주입)
|
|
29
24
|
workflow_dispatch: # 수동 실행 옵션 추가
|
|
30
25
|
|
|
31
|
-
#
|
|
32
|
-
# 🔧 프로젝트별 설정 (아래 값들을 수정하세요)
|
|
33
|
-
# ============================================
|
|
26
|
+
# 프로젝트별 설정 (아래 값들을 수정하세요)
|
|
34
27
|
env:
|
|
35
28
|
# 프로젝트 이름 (APK 파일명, 아티팩트명, 히스토리 파일명에 사용)
|
|
36
29
|
APP_ARTIFACT_NAME: "__APP_ARTIFACT_NAME__" # @wizard ask:@repo
|
|
@@ -55,7 +48,6 @@ jobs:
|
|
|
55
48
|
working-directory: ${{ env.FLUTTER_PROJECT_DIR }}
|
|
56
49
|
|
|
57
50
|
steps:
|
|
58
|
-
# Repository 체크아웃 및 목록 출력
|
|
59
51
|
- name: Check out repository
|
|
60
52
|
uses: actions/checkout@v7
|
|
61
53
|
with:
|
|
@@ -90,7 +82,6 @@ jobs:
|
|
|
90
82
|
echo "dart-define file prepared"
|
|
91
83
|
fi
|
|
92
84
|
|
|
93
|
-
# Keystore와 key.properties 설정
|
|
94
85
|
- name: Setup Keystore and key.properties
|
|
95
86
|
run: |
|
|
96
87
|
mkdir -p android/app/keystore
|
|
@@ -104,7 +95,6 @@ jobs:
|
|
|
104
95
|
echo "key.properties created"
|
|
105
96
|
ls -la android/
|
|
106
97
|
|
|
107
|
-
# Google-services.json 생성
|
|
108
98
|
- name: Create Google-services.json
|
|
109
99
|
run: |
|
|
110
100
|
cat << 'EOF' > android/app/google-services.json
|
|
@@ -113,7 +103,6 @@ jobs:
|
|
|
113
103
|
echo "✅ Google-services.json 생성 완료"
|
|
114
104
|
ls -la android/app/
|
|
115
105
|
|
|
116
|
-
# Flutter 설정 및 버전 확인
|
|
117
106
|
- name: Set up Flutter
|
|
118
107
|
uses: subosito/flutter-action@v2
|
|
119
108
|
with:
|
|
@@ -126,7 +115,6 @@ jobs:
|
|
|
126
115
|
echo "Flutter setup completed"
|
|
127
116
|
flutter --version
|
|
128
117
|
|
|
129
|
-
# Flutter 및 Gradle 캐시
|
|
130
118
|
- name: Cache Flutter dependencies
|
|
131
119
|
uses: actions/cache@v6
|
|
132
120
|
with:
|
|
@@ -144,7 +132,6 @@ jobs:
|
|
|
144
132
|
restore-keys: |
|
|
145
133
|
${{ runner.os }}-gradle-
|
|
146
134
|
|
|
147
|
-
# 프로젝트 의존성 설치
|
|
148
135
|
- name: Install dependencies
|
|
149
136
|
run: |
|
|
150
137
|
flutter pub get
|
|
@@ -154,14 +141,12 @@ jobs:
|
|
|
154
141
|
echo "Dependencies installed"
|
|
155
142
|
ls -la
|
|
156
143
|
|
|
157
|
-
# Gradle 셋업
|
|
158
144
|
- name: Setup Gradle
|
|
159
145
|
working-directory: ${{ env.FLUTTER_PROJECT_DIR }}/android
|
|
160
146
|
run: |
|
|
161
147
|
chmod +x gradlew
|
|
162
148
|
echo "Gradle wrapper permissions set"
|
|
163
149
|
|
|
164
|
-
# Java 설정 및 버전 확인
|
|
165
150
|
- name: Set up Java
|
|
166
151
|
uses: actions/setup-java@v5
|
|
167
152
|
with:
|
|
@@ -173,7 +158,6 @@ jobs:
|
|
|
173
158
|
echo "Java setup completed"
|
|
174
159
|
java -version
|
|
175
160
|
|
|
176
|
-
# 현재 버전 정보 및 짧은 커밋 해시 계산
|
|
177
161
|
- name: Get version info and calculate short commit hash
|
|
178
162
|
id: version_info
|
|
179
163
|
run: |
|
|
@@ -197,7 +181,6 @@ jobs:
|
|
|
197
181
|
ls -la build/app/outputs/flutter-apk/ || true
|
|
198
182
|
echo "APK built"
|
|
199
183
|
|
|
200
|
-
# APK 파일 이름 변경 및 준비
|
|
201
184
|
- name: Rename and Prepare APK
|
|
202
185
|
run: |
|
|
203
186
|
mkdir -p ./android/app/build/outputs/apk/release/
|
|
@@ -205,7 +188,6 @@ jobs:
|
|
|
205
188
|
echo "APK renamed to ${{ env.APP_ARTIFACT_NAME }}-v${{ env.VERSION }}-${{ env.SHORT_COMMIT_HASH }}.apk"
|
|
206
189
|
ls -la ./android/app/build/outputs/apk/release/
|
|
207
190
|
|
|
208
|
-
# APK를 아티팩트로 업로드
|
|
209
191
|
- name: Upload APK as Artifact
|
|
210
192
|
uses: actions/upload-artifact@v7
|
|
211
193
|
with:
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# project-auto-wizard:managed-workflow
|
|
2
|
-
# ===================================================================
|
|
3
2
|
# Flutter Android 테스트용 APK 빌드 워크플로우
|
|
4
|
-
# ===================================================================
|
|
5
3
|
#
|
|
6
4
|
# 이 워크플로우는 기능 브랜치에서 수동으로 실행하여
|
|
7
5
|
# 테스트용 Android APK를 빌드합니다.
|
|
@@ -22,27 +20,23 @@
|
|
|
22
20
|
# 3. "Run workflow" 버튼 클릭
|
|
23
21
|
# 4. 빌드 완료 후 아티팩트에서 APK 다운로드
|
|
24
22
|
#
|
|
25
|
-
#
|
|
26
|
-
# 🔑 필수 GitHub Secrets
|
|
27
|
-
# ===================================================================
|
|
23
|
+
# 필수 GitHub Secrets
|
|
28
24
|
#
|
|
29
|
-
#
|
|
25
|
+
# Release Keystore (Play Store 배포와 동일):
|
|
30
26
|
# RELEASE_KEYSTORE_BASE64: 릴리즈 키스토어 파일 (base64)
|
|
31
27
|
# RELEASE_KEYSTORE_PASSWORD: 키스토어 비밀번호
|
|
32
28
|
# RELEASE_KEY_ALIAS: 키 별칭
|
|
33
29
|
# RELEASE_KEY_PASSWORD: 키 비밀번호
|
|
34
30
|
#
|
|
35
|
-
#
|
|
31
|
+
# 환경 설정 (선택):
|
|
36
32
|
# ENV_FILE (선택): .env 파일 내용
|
|
37
33
|
# GOOGLE_SERVICES_JSON (선택): google-services.json 내용 (Firebase 사용 시)
|
|
38
34
|
#
|
|
39
|
-
#
|
|
35
|
+
# Firebase App Distribution (선택):
|
|
40
36
|
# FIREBASE_SERVICE_ACCOUNT_JSON_BASE64: Firebase 서비스 계정 JSON (base64)
|
|
41
37
|
#
|
|
42
38
|
# ※ 위 Secrets는 저장소 Settings → Secrets and variables → Actions에 등록하세요.
|
|
43
39
|
# Firebase 업로드를 쓰려면 아래 env의 FIREBASE_APP_ID·FIREBASE_TESTER_GROUP도 수정합니다.
|
|
44
|
-
#
|
|
45
|
-
# ===================================================================
|
|
46
40
|
|
|
47
41
|
name: PROJECT-Flutter-Android-Test-APK
|
|
48
42
|
|
|
@@ -55,9 +49,7 @@ on:
|
|
|
55
49
|
repository_dispatch:
|
|
56
50
|
types: [build-android-app]
|
|
57
51
|
|
|
58
|
-
#
|
|
59
|
-
# 🔧 프로젝트별 설정 (아래 값들을 수정하세요)
|
|
60
|
-
# ===================================================================
|
|
52
|
+
# 프로젝트별 설정 (아래 값들을 수정하세요)
|
|
61
53
|
env:
|
|
62
54
|
FLUTTER_VERSION: "3.35.5"
|
|
63
55
|
JAVA_VERSION: "__JAVA_VERSION__" # @wizard ask:17
|
|
@@ -157,9 +149,6 @@ jobs:
|
|
|
157
149
|
echo "⚠️ Firebase 서비스 계정 없음 - App Distribution 업로드 건너뜀"
|
|
158
150
|
fi
|
|
159
151
|
|
|
160
|
-
# ===================================================================
|
|
161
|
-
# 진행 상황 댓글 시스템
|
|
162
|
-
# ===================================================================
|
|
163
152
|
- name: 진행 상황 댓글 생성
|
|
164
153
|
id: progress_comment
|
|
165
154
|
if: github.event_name == 'repository_dispatch' && github.event.client_payload.pr_number != ''
|
|
@@ -215,7 +204,6 @@ jobs:
|
|
|
215
204
|
echo "🌿 브랜치: $BRANCH_NAME"
|
|
216
205
|
git pull origin "$BRANCH_NAME" || echo "⚠️ Pull 실패 (이미 최신 상태일 수 있음)"
|
|
217
206
|
|
|
218
|
-
# 브랜치명에서 이슈 번호 추출 및 GitHub API로 이슈 정보 가져오기
|
|
219
207
|
- name: 브랜치명에서 이슈 정보 추출
|
|
220
208
|
id: issue_info
|
|
221
209
|
run: |
|
|
@@ -261,7 +249,6 @@ jobs:
|
|
|
261
249
|
fi
|
|
262
250
|
fi
|
|
263
251
|
|
|
264
|
-
# 빌드 정보 생성
|
|
265
252
|
- name: 빌드 정보 생성
|
|
266
253
|
id: build_info
|
|
267
254
|
run: |
|
|
@@ -370,7 +357,6 @@ jobs:
|
|
|
370
357
|
echo "ℹ️ GOOGLE_SERVICES_JSON secret not provided, skipping"
|
|
371
358
|
fi
|
|
372
359
|
|
|
373
|
-
# Flutter 설정
|
|
374
360
|
- name: Set up Flutter
|
|
375
361
|
uses: subosito/flutter-action@v2
|
|
376
362
|
with:
|
|
@@ -382,7 +368,6 @@ jobs:
|
|
|
382
368
|
echo "✅ Flutter setup completed"
|
|
383
369
|
flutter --version
|
|
384
370
|
|
|
385
|
-
# Flutter 및 Gradle 캐시
|
|
386
371
|
- name: Cache Flutter dependencies
|
|
387
372
|
uses: actions/cache@v6
|
|
388
373
|
with:
|
|
@@ -400,7 +385,6 @@ jobs:
|
|
|
400
385
|
restore-keys: |
|
|
401
386
|
${{ runner.os }}-gradle-
|
|
402
387
|
|
|
403
|
-
# 프로젝트 의존성 설치
|
|
404
388
|
- name: Install dependencies
|
|
405
389
|
run: |
|
|
406
390
|
flutter pub get
|
|
@@ -409,14 +393,12 @@ jobs:
|
|
|
409
393
|
fi
|
|
410
394
|
echo "✅ Dependencies installed"
|
|
411
395
|
|
|
412
|
-
# Gradle 셋업
|
|
413
396
|
- name: Setup Gradle
|
|
414
397
|
working-directory: ${{ env.FLUTTER_PROJECT_DIR }}/android
|
|
415
398
|
run: |
|
|
416
399
|
chmod +x gradlew
|
|
417
400
|
echo "✅ Gradle wrapper permissions set"
|
|
418
401
|
|
|
419
|
-
# Java 설정
|
|
420
402
|
- name: Set up Java
|
|
421
403
|
uses: actions/setup-java@v5
|
|
422
404
|
with:
|
|
@@ -428,7 +410,6 @@ jobs:
|
|
|
428
410
|
echo "✅ Java setup completed"
|
|
429
411
|
java -version
|
|
430
412
|
|
|
431
|
-
# 진행상황 - 준비 완료
|
|
432
413
|
- name: 진행상황 - 준비 완료
|
|
433
414
|
id: progress_step1
|
|
434
415
|
if: github.event_name == 'repository_dispatch' && needs.prepare-test-build.outputs.progress_comment_id != ''
|
|
@@ -541,7 +522,6 @@ jobs:
|
|
|
541
522
|
ls -la ./build/app/outputs/flutter-apk/ || true
|
|
542
523
|
echo "✅ APK built"
|
|
543
524
|
|
|
544
|
-
# APK 파일 이름 변경 및 준비
|
|
545
525
|
- name: Rename and Prepare APK
|
|
546
526
|
run: |
|
|
547
527
|
mkdir -p ./android/app/build/outputs/apk/release/
|
|
@@ -562,7 +542,6 @@ jobs:
|
|
|
562
542
|
echo "✅ APK 파일 크기가 아티팩트 제한 내입니다 (${APK_SIZE_MB}MB / 500MB)"
|
|
563
543
|
fi
|
|
564
544
|
|
|
565
|
-
# 진행상황 - APK 빌드 완료
|
|
566
545
|
- name: 진행상황 - APK 빌드 완료
|
|
567
546
|
id: progress_step2
|
|
568
547
|
if: github.event_name == 'repository_dispatch' && needs.prepare-test-build.outputs.progress_comment_id != ''
|
|
@@ -613,7 +592,6 @@ jobs:
|
|
|
613
592
|
core.setOutput('elapsed', elapsedStr);
|
|
614
593
|
core.setOutput('end_time', now.toString());
|
|
615
594
|
|
|
616
|
-
# 빌드 정보 파일 생성
|
|
617
595
|
- name: Create build info file
|
|
618
596
|
run: |
|
|
619
597
|
BUILD_NUMBER="${{ needs.prepare-test-build.outputs.build_number }}"
|
|
@@ -756,7 +734,6 @@ jobs:
|
|
|
756
734
|
const elapsedStr = minutes > 0 ? `${minutes}분 ${seconds}초` : `${seconds}초`;
|
|
757
735
|
core.setOutput('elapsed', elapsedStr);
|
|
758
736
|
|
|
759
|
-
# 진행 상황 최종 업데이트 - 성공
|
|
760
737
|
- name: 진행 상황 최종 업데이트 - 성공
|
|
761
738
|
if: success() && github.event_name == 'repository_dispatch' && github.event.client_payload.pr_number != '' && needs.prepare-test-build.outputs.progress_comment_id != ''
|
|
762
739
|
uses: actions/github-script@v9
|
|
@@ -869,7 +846,6 @@ jobs:
|
|
|
869
846
|
console.log(`✅ 이슈 #${issueNumber}에도 빌드 성공 댓글 작성 완료`);
|
|
870
847
|
}
|
|
871
848
|
|
|
872
|
-
# 진행 상황 최종 업데이트 - 실패
|
|
873
849
|
- name: 진행 상황 최종 업데이트 - 실패
|
|
874
850
|
if: failure() && github.event_name == 'repository_dispatch' && github.event.client_payload.pr_number != '' && needs.prepare-test-build.outputs.progress_comment_id != ''
|
|
875
851
|
uses: actions/github-script@v9
|
|
@@ -959,7 +935,6 @@ jobs:
|
|
|
959
935
|
console.log(`❌ 이슈 #${issueNumber}에도 빌드 실패 댓글 작성 완료`);
|
|
960
936
|
}
|
|
961
937
|
|
|
962
|
-
# 콘솔 알림
|
|
963
938
|
- name: Notify Build Success
|
|
964
939
|
if: success()
|
|
965
940
|
run: |
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# project-auto-wizard:managed-workflow
|
|
2
|
-
# ===================================================================
|
|
3
2
|
# Flutter 테스트 앱 빌드 트리거 워크플로우
|
|
4
|
-
# ===================================================================
|
|
5
3
|
#
|
|
6
4
|
# 이 워크플로우는 PR 또는 이슈에 댓글로 빌드 명령어를 작성하면
|
|
7
5
|
# Android와 iOS 테스트 앱 빌드를 자동으로 트리거합니다.
|
|
@@ -26,8 +24,6 @@
|
|
|
26
24
|
# 트리거되는 워크플로우:
|
|
27
25
|
# - PROJECT-FLUTTER-ANDROID-TEST-APK.yaml (event_type: build-android-app)
|
|
28
26
|
# - PROJECT-FLUTTER-IOS-TEST-TESTFLIGHT.yaml (event_type: build-ios-app)
|
|
29
|
-
#
|
|
30
|
-
# ===================================================================
|
|
31
27
|
|
|
32
28
|
name: PROJECT-Flutter-App-Build-Trigger
|
|
33
29
|
|