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.
Files changed (78) hide show
  1. package/README.md +4 -8
  2. package/package.json +1 -1
  3. package/payload/config/breaking-changes.json +1 -1
  4. package/payload/scripts/__pycache__/changelog_manager.cpython-314.pyc +0 -0
  5. package/payload/scripts/__pycache__/issue_helper.cpython-314.pyc +0 -0
  6. package/payload/scripts/__pycache__/version_manager.cpython-314.pyc +0 -0
  7. package/payload/scripts/changelog_manager.py +4 -4
  8. package/payload/scripts/version_manager.py +2 -2
  9. package/payload/version.yml.template +0 -2
  10. package/payload/workflows/common/PROJECT-COMMON-AI-PR-SUMMARY.yaml +0 -4
  11. package/payload/workflows/common/PROJECT-COMMON-AUTO-CHANGELOG-CONTROL.yaml +2 -7
  12. package/payload/workflows/common/PROJECT-COMMON-ISSUE-HELPER.yaml +3 -6
  13. package/payload/workflows/common/PROJECT-COMMON-README-VERSION-UPDATE.yaml +0 -12
  14. package/payload/workflows/common/PROJECT-COMMON-RELEASE-PUBLISH.yaml +2 -6
  15. package/payload/workflows/common/PROJECT-COMMON-VERSION-CONTROL.yaml +3 -7
  16. package/payload/workflows/flutter/PROJECT-FLUTTER-ANDROID-FIREBASE-CICD.yaml +7 -34
  17. package/payload/workflows/flutter/PROJECT-FLUTTER-ANDROID-PLAYSTORE-CICD.yaml +2 -25
  18. package/payload/workflows/flutter/PROJECT-FLUTTER-ANDROID-SELFHOSTED-CICD.yaml +2 -20
  19. package/payload/workflows/flutter/PROJECT-FLUTTER-ANDROID-TEST-APK.yaml +5 -30
  20. package/payload/workflows/flutter/PROJECT-FLUTTER-APP-BUILD-TRIGGER.yaml +0 -4
  21. package/payload/workflows/flutter/PROJECT-FLUTTER-CI.yaml +7 -51
  22. package/payload/workflows/flutter/PROJECT-FLUTTER-IOS-TEST-TESTFLIGHT.yaml +5 -29
  23. package/payload/workflows/flutter/PROJECT-FLUTTER-IOS-TESTFLIGHT.yaml +9 -29
  24. package/payload/workflows/go/PROJECT-GO-CI.yaml +5 -28
  25. package/payload/workflows/go/PROJECT-GO-PR-PREVIEW.yaml +19 -99
  26. package/payload/workflows/go/PROJECT-GO-SIMPLE-CICD.yaml +18 -89
  27. package/payload/workflows/next/PROJECT-NEXT-CI.yaml +11 -41
  28. package/payload/workflows/next/PROJECT-NEXT-CICD.yaml +9 -45
  29. package/payload/workflows/python/PROJECT-PYTHON-CI.yaml +1 -27
  30. package/payload/workflows/python/PROJECT-PYTHON-PR-PREVIEW.yaml +14 -97
  31. package/payload/workflows/python/PROJECT-PYTHON-SIMPLE-CICD.yaml +14 -92
  32. package/payload/workflows/react/PROJECT-REACT-CI.yaml +11 -40
  33. package/payload/workflows/react/PROJECT-REACT-CICD.yaml +9 -43
  34. package/payload/workflows/spring/{nexus/PROJECT-SPRING-NEXUS-CI.yml → PROJECT-SPRING-CI.yml} +2 -25
  35. package/payload/workflows/spring/server-deploy/PROJECT-SPRING-NONSTOP-NGINX-CICD.yaml +19 -63
  36. package/payload/workflows/spring/server-deploy/PROJECT-SPRING-NONSTOP-TRAEFIK-CICD.yaml +19 -59
  37. package/payload/workflows/spring/server-deploy/PROJECT-SPRING-PR-PREVIEW.yaml +23 -86
  38. package/payload/workflows/spring/server-deploy/PROJECT-SPRING-SIMPLE-CICD.yaml +20 -80
  39. package/src/cli/args.js +1 -15
  40. package/src/cli/help.js +0 -2
  41. package/src/commands/doctor.js +5 -5
  42. package/src/commands/dry-run.js +1 -1
  43. package/src/commands/full.js +9 -10
  44. package/src/commands/interactive-flutter.js +1 -1
  45. package/src/commands/interactive.js +25 -46
  46. package/src/commands/purge.js +2 -2
  47. package/src/commands/status.js +4 -6
  48. package/src/commands/uninstall.js +3 -4
  49. package/src/context.js +4 -6
  50. package/src/core/assets.js +2 -2
  51. package/src/core/baseline.js +1 -1
  52. package/src/core/branches.js +3 -3
  53. package/src/core/breaking-check.js +1 -1
  54. package/src/core/breaking.js +1 -1
  55. package/src/core/copy/flutter-app.js +2 -2
  56. package/src/core/copy/gitignore.js +8 -8
  57. package/src/core/copy/workflows.js +24 -69
  58. package/src/core/deploy-style.js +2 -2
  59. package/src/core/detect-fs.js +11 -11
  60. package/src/core/detect.js +7 -7
  61. package/src/core/flutter-options.js +1 -1
  62. package/src/core/installed-stores.js +1 -1
  63. package/src/core/logger.js +1 -1
  64. package/src/core/paths-resolve.js +1 -1
  65. package/src/core/removal-plan.js +4 -4
  66. package/src/core/verify.js +3 -3
  67. package/src/core/version-yml.js +17 -33
  68. package/src/core/wizard-env.js +4 -4
  69. package/src/index.js +12 -14
  70. package/src/ui/banner.js +2 -2
  71. package/src/ui/env-plan.js +10 -16
  72. package/src/ui/prompts.js +9 -14
  73. package/src/ui/status-cards.js +10 -12
  74. package/src/ui/summary.js +9 -9
  75. package/payload/workflows/common/secret-backup/PROJECT-COMMON-SECRET-FILE-UPLOAD.yaml +0 -210
  76. package/payload/workflows/spring/nexus/PROJECT-SPRING-GITHUB-PACKAGES-PUBLISH.yml +0 -92
  77. package/payload/workflows/spring/nexus/PROJECT-SPRING-NEXUS-PUBLISH.yml +0 -70
  78. package/src/core/options-ask.js +0 -102
@@ -1,7 +1,5 @@
1
1
  # project-auto-wizard:managed-workflow
2
- # ==========================================================================================
3
2
  # Flutter CI (코드 분석 및 빌드 검증) 워크플로우
4
- # ==========================================================================================
5
3
  #
6
4
  # 이 워크플로우는 PR 생성 또는 {{MAIN_BRANCH}} 브랜치 푸시 시
7
5
  # 코드 정적 분석(flutter analyze)과 Android/iOS 앱 빌드를 검증합니다.
@@ -22,9 +20,7 @@
22
20
  # 3. ENABLE_ANDROID, ENABLE_IOS로 빌드 대상 플랫폼 선택
23
21
  # 4. ENV_FILE_PATH로 환경변수 파일 경로 커스터마이징
24
22
  #
25
- # ==========================================================================================
26
- # 🔧 프로젝트별 설정
27
- # ==========================================================================================
23
+ # 프로젝트별 설정
28
24
  #
29
25
  # ANALYZE_ONLY : true면 analyze만 실행, 빌드 스킵 (기본: false)
30
26
  # ENABLE_ANDROID : Android 빌드 활성화 여부 (ANALYZE_ONLY=false일 때)
@@ -37,15 +33,12 @@
37
33
  # FLUTTER_PROJECT_DIR : Flutter 루트 경로 (설치 시 자동 설정, 모노레포는 app 등)
38
34
  # PROJECT_PATH : 변경 감지 기준 경로 (설치 시 자동 설정, "."이면 항상 실행)
39
35
  #
40
- # ==========================================================================================
41
- # 🔑 필수 GitHub Secrets
42
- # ==========================================================================================
36
+ # 필수 GitHub Secrets
43
37
  # ENV_FILE (선택): .env 파일 내용
44
38
  #
45
39
  # ※ CI는 빌드 검증 목적이므로 서명/배포 관련 Secrets 불필요
46
40
  # ※ 모노레포에서 이 CI를 required check로 쓰려면 개별 job이 아니라 `ci-gate` 하나만 등록하세요.
47
41
  # (경로가 바뀌지 않아 건너뛴 job은 Success로 집계되고, ci-gate가 최종 결과를 판정합니다)
48
- # ==========================================================================================
49
42
 
50
43
  name: PROJECT-Flutter-CI
51
44
 
@@ -74,25 +67,23 @@ permissions:
74
67
  contents: read
75
68
  pull-requests: write
76
69
 
77
- # ==========================================================================================
78
- # 🔧 프로젝트별 설정 (아래 값들을 수정하세요)
79
- # ==========================================================================================
70
+ # 프로젝트별 설정 (아래 값들을 수정하세요)
80
71
  env:
81
- # 🎯 모노레포 변경 감지 경로 (설치 시 자동 설정, 단일 레포는 ".")
72
+ # 모노레포 변경 감지 경로 (설치 시 자동 설정, 단일 레포는 ".")
82
73
  PROJECT_PATH: "." # @wizard auto:project-path
83
74
  # Flutter 루트 경로(레포 루트 기준). 단일레포면 ".", 모노레포면 "app" 등 — 설치 시 자동 설정
84
75
  FLUTTER_PROJECT_DIR: "." # @wizard auto:flutter-root
85
76
  # 환경변수 전달 방식 (dart-define | dotenv) — 설치 시 선택값으로 자동 설정
86
77
  ENV_MODE: "dart-define" # @wizard auto:flutter-env-mode
87
78
 
88
- # 🎯 CI 모드 설정
79
+ # CI 모드 설정
89
80
  ANALYZE_ONLY: "false" # true: analyze만 실행 (빌드 스킵), false: analyze + 빌드
90
81
 
91
- # 🎯 빌드 대상 플랫폼 설정 (ANALYZE_ONLY=false일 때만 적용)
82
+ # 빌드 대상 플랫폼 설정 (ANALYZE_ONLY=false일 때만 적용)
92
83
  ENABLE_ANDROID: "true" # Android 빌드 활성화 (true/false)
93
84
  ENABLE_IOS: "true" # iOS 빌드 활성화 (true/false)
94
85
 
95
- # 🔧 프로젝트별 설정
86
+ # 프로젝트별 설정
96
87
  FLUTTER_VERSION: "3.35.5"
97
88
  JAVA_VERSION: "__JAVA_VERSION__" # @wizard ask:17
98
89
  XCODE_VERSION: "26.0"
@@ -103,9 +94,7 @@ concurrency:
103
94
  cancel-in-progress: true
104
95
 
105
96
  jobs:
106
- # ===================================================================
107
97
  # Job 0: 변경 감지 (PROJECT_PATH 아래가 바뀌었을 때만 이후 job 실행)
108
- # ===================================================================
109
98
  changes:
110
99
  name: 변경 감지
111
100
  runs-on: ubuntu-latest
@@ -127,9 +116,7 @@ jobs:
127
116
  project:
128
117
  - '${{ env.PROJECT_PATH == '.' && '**' || format('{0}/**', env.PROJECT_PATH) }}'
129
118
 
130
- # ===================================================================
131
119
  # Job 1: 준비 단계
132
- # ===================================================================
133
120
  prepare:
134
121
  name: CI 준비
135
122
  needs: changes
@@ -147,7 +134,6 @@ jobs:
147
134
 
148
135
  steps:
149
136
  # 설정 값 outputs으로 전달
150
- # workflow_dispatch 입력값이 있으면 우선 사용, 없으면 env 값 사용
151
137
  - name: 설정 값 전달
152
138
  id: config
153
139
  run: |
@@ -171,7 +157,6 @@ jobs:
171
157
  echo " iOS: $ENABLE_IOS"
172
158
  echo " 트리거: ${{ github.event_name }}"
173
159
 
174
- # 빌드 정보 수집
175
160
  - name: 빌드 정보 수집
176
161
  id: info
177
162
  run: |
@@ -189,7 +174,6 @@ jobs:
189
174
  echo " 브랜치: $BRANCH_NAME"
190
175
  echo " 커밋: $COMMIT_HASH"
191
176
 
192
- # PR인 경우 진행 상황 댓글 생성
193
177
  - name: 진행 상황 댓글 생성
194
178
  id: comment
195
179
  if: github.event_name == 'pull_request'
@@ -261,9 +245,7 @@ jobs:
261
245
  core.setOutput('comment_id', comment.id);
262
246
  core.setOutput('start_time', startTime);
263
247
 
264
- # ===================================================================
265
248
  # Job 2: 코드 분석 (병렬)
266
- # ===================================================================
267
249
  analyze:
268
250
  name: 코드 분석
269
251
  runs-on: ubuntu-latest
@@ -303,7 +285,6 @@ jobs:
303
285
  echo "dart-define file prepared"
304
286
  fi
305
287
 
306
- # Flutter 설정
307
288
  - name: Set up Flutter
308
289
  uses: subosito/flutter-action@v2
309
290
  with:
@@ -315,7 +296,6 @@ jobs:
315
296
  echo "✅ Flutter setup completed"
316
297
  flutter --version
317
298
 
318
- # Flutter 캐시
319
299
  - name: Cache Flutter dependencies
320
300
  uses: actions/cache@v6
321
301
  with:
@@ -323,7 +303,6 @@ jobs:
323
303
  key: ${{ runner.os }}-flutter-pub-${{ hashFiles(format('{0}/**/pubspec.lock', env.FLUTTER_PROJECT_DIR)) }}
324
304
  restore-keys: ${{ runner.os }}-flutter-pub-
325
305
 
326
- # 프로젝트 의존성 설치
327
306
  - name: Install dependencies
328
307
  run: |
329
308
  flutter pub get
@@ -332,7 +311,6 @@ jobs:
332
311
  fi
333
312
  echo "✅ Dependencies installed"
334
313
 
335
- # Flutter Analyze 실행
336
314
  - name: Run Flutter Analyze
337
315
  id: analyze
338
316
  run: |
@@ -340,7 +318,6 @@ jobs:
340
318
  flutter analyze --no-fatal-infos
341
319
  echo "✅ 코드 분석 완료"
342
320
 
343
- # 분석 결과 기록
344
321
  - name: 분석 결과 기록
345
322
  id: result
346
323
  if: always()
@@ -360,9 +337,7 @@ jobs:
360
337
  core.setOutput('duration', duration);
361
338
  console.log(`📋 코드 분석 결과: ${status} (${duration})`);
362
339
 
363
- # ===================================================================
364
340
  # Job 3: Android 빌드 (조건부, 병렬)
365
- # ===================================================================
366
341
  build-android:
367
342
  name: Android 빌드
368
343
  if: |
@@ -405,7 +380,6 @@ jobs:
405
380
  echo "dart-define file prepared"
406
381
  fi
407
382
 
408
- # Flutter 설정
409
383
  - name: Set up Flutter
410
384
  uses: subosito/flutter-action@v2
411
385
  with:
@@ -417,7 +391,6 @@ jobs:
417
391
  echo "✅ Flutter setup completed"
418
392
  flutter --version
419
393
 
420
- # Flutter 캐시
421
394
  - name: Cache Flutter dependencies
422
395
  uses: actions/cache@v6
423
396
  with:
@@ -425,7 +398,6 @@ jobs:
425
398
  key: ${{ runner.os }}-flutter-pub-${{ hashFiles(format('{0}/**/pubspec.lock', env.FLUTTER_PROJECT_DIR)) }}
426
399
  restore-keys: ${{ runner.os }}-flutter-pub-
427
400
 
428
- # Gradle 캐시
429
401
  - name: Cache Gradle dependencies
430
402
  uses: actions/cache@v6
431
403
  with:
@@ -436,7 +408,6 @@ jobs:
436
408
  restore-keys: |
437
409
  ${{ runner.os }}-gradle-
438
410
 
439
- # 프로젝트 의존성 설치
440
411
  - name: Install dependencies
441
412
  run: |
442
413
  flutter pub get
@@ -445,7 +416,6 @@ jobs:
445
416
  fi
446
417
  echo "✅ Dependencies installed"
447
418
 
448
- # Java 설정
449
419
  - name: Set up Java
450
420
  uses: actions/setup-java@v5
451
421
  with:
@@ -457,7 +427,6 @@ jobs:
457
427
  echo "✅ Java setup completed"
458
428
  java -version
459
429
 
460
- # Gradle 셋업
461
430
  - name: Setup Gradle
462
431
  working-directory: ${{ env.FLUTTER_PROJECT_DIR }}/android
463
432
  run: |
@@ -473,7 +442,6 @@ jobs:
473
442
  echo "✅ APK 빌드 완료"
474
443
  ls -la ./build/app/outputs/flutter-apk/ || true
475
444
 
476
- # 빌드 결과 기록
477
445
  - name: 빌드 결과 기록
478
446
  id: result
479
447
  if: always()
@@ -493,9 +461,7 @@ jobs:
493
461
  core.setOutput('duration', duration);
494
462
  console.log(`📋 Android 빌드 결과: ${status} (${duration})`);
495
463
 
496
- # ===================================================================
497
464
  # Job 4: iOS 빌드 (조건부, 병렬)
498
- # ===================================================================
499
465
  build-ios:
500
466
  name: iOS 빌드
501
467
  if: |
@@ -558,7 +524,6 @@ jobs:
558
524
  echo "dart-define file prepared"
559
525
  fi
560
526
 
561
- # Flutter 설정
562
527
  - name: Set up Flutter
563
528
  uses: subosito/flutter-action@v2
564
529
  with:
@@ -570,7 +535,6 @@ jobs:
570
535
  echo "✅ Flutter setup completed"
571
536
  flutter --version
572
537
 
573
- # Flutter 캐시
574
538
  - name: Cache Flutter dependencies
575
539
  uses: actions/cache@v6
576
540
  with:
@@ -578,7 +542,6 @@ jobs:
578
542
  key: ${{ runner.os }}-flutter-pub-${{ hashFiles(format('{0}/**/pubspec.lock', env.FLUTTER_PROJECT_DIR)) }}
579
543
  restore-keys: ${{ runner.os }}-flutter-pub-
580
544
 
581
- # 프로젝트 의존성 설치
582
545
  - name: Install dependencies
583
546
  run: |
584
547
  flutter pub get
@@ -587,7 +550,6 @@ jobs:
587
550
  fi
588
551
  echo "✅ Dependencies installed"
589
552
 
590
- # Ruby 및 CocoaPods 설정
591
553
  - name: Set up Ruby
592
554
  uses: ruby/setup-ruby@v1
593
555
  with:
@@ -600,7 +562,6 @@ jobs:
600
562
  cd ios && pod install --repo-update || pod install
601
563
  echo "✅ CocoaPods installed"
602
564
 
603
- # iOS 빌드 (서명 없이)
604
565
  - name: Build iOS
605
566
  id: build
606
567
  run: |
@@ -608,7 +569,6 @@ jobs:
608
569
  flutter build ios --release --no-codesign ${DART_DEFINE_FILE:+--dart-define-from-file="$DART_DEFINE_FILE"}
609
570
  echo "✅ iOS 빌드 완료"
610
571
 
611
- # 빌드 결과 기록
612
572
  - name: 빌드 결과 기록
613
573
  id: result
614
574
  if: always()
@@ -628,9 +588,7 @@ jobs:
628
588
  core.setOutput('duration', duration);
629
589
  console.log(`📋 iOS 빌드 결과: ${status} (${duration})`);
630
590
 
631
- # ===================================================================
632
591
  # Job 5: 결과 보고
633
- # ===================================================================
634
592
  report:
635
593
  name: 결과 보고
636
594
  if: always() && github.event_name == 'pull_request' && needs.changes.outputs.project == 'true'
@@ -786,9 +744,7 @@ jobs:
786
744
  console.log('⚠️ 댓글 ID가 없어 업데이트를 건너뜁니다.');
787
745
  }
788
746
 
789
- # ===================================================================
790
747
  # Job 6: CI Gate (required check로 등록할 단일 진입점)
791
- # ===================================================================
792
748
  # 건너뛴(skipped) job은 통과로 보고 failure/cancelled가 하나라도 있으면 실패한다.
793
749
  ci-gate:
794
750
  name: CI Gate
@@ -1,7 +1,5 @@
1
1
  # project-auto-wizard:managed-workflow
2
- # ===================================================================
3
2
  # Flutter iOS 테스트용 TestFlight 배포 워크플로우
4
- # ===================================================================
5
3
  #
6
4
  # 이 워크플로우는 기능 브랜치에서 수동으로 실행하여
7
5
  # 테스트용 iOS 빌드를 TestFlight에 배포합니다.
@@ -22,26 +20,22 @@
22
20
  # 3. xcodebuild -exportArchive (IPA 생성, ExportOptions.plist 사용)
23
21
  # 4. fastlane upload_testflight (ios/fastlane/Fastfile 사용)
24
22
  #
25
- # ===================================================================
26
- # 🔑 필수 GitHub Secrets
27
- # ===================================================================
23
+ # 필수 GitHub Secrets
28
24
  #
29
- # 🔐 Apple 인증서 & 프로비저닝 프로파일:
25
+ # Apple 인증서 & 프로비저닝 프로파일:
30
26
  # APPLE_CERTIFICATE_BASE64: .p12 인증서 (base64 인코딩)
31
27
  # APPLE_CERTIFICATE_PASSWORD: .p12 인증서 비밀번호
32
28
  # APPLE_PROVISIONING_PROFILE_BASE64: .mobileprovision 파일 (base64 인코딩)
33
29
  # IOS_PROVISIONING_PROFILE_NAME: 프로비저닝 프로파일 이름
34
30
  #
35
- # 🔐 App Store Connect API:
31
+ # App Store Connect API:
36
32
  # APP_STORE_CONNECT_API_KEY_ID: API Key ID (10자리)
37
33
  # APP_STORE_CONNECT_ISSUER_ID: Issuer ID (UUID 형식)
38
34
  # APP_STORE_CONNECT_API_KEY_BASE64: AuthKey_XXXXXX.p8 파일 (base64 인코딩)
39
35
  #
40
- # 📝 환경 설정 (선택):
36
+ # 환경 설정 (선택):
41
37
  # ENV_FILE (선택): .env 파일 내용
42
38
  # SECRETS_XCCONFIG (선택): ios/Flutter/Secrets.xcconfig 내용
43
- #
44
- # ===================================================================
45
39
 
46
40
  name: PROJECT-Flutter-iOS-Test-TestFlight
47
41
 
@@ -54,9 +48,7 @@ on:
54
48
  repository_dispatch:
55
49
  types: [build-ios-app]
56
50
 
57
- # ===================================================================
58
- # 🔧 프로젝트별 설정 (아래 값들을 수정하세요)
59
- # ===================================================================
51
+ # 프로젝트별 설정 (아래 값들을 수정하세요)
60
52
  env:
61
53
  FLUTTER_VERSION: "3.35.5"
62
54
  XCODE_VERSION: "26.0"
@@ -69,9 +61,7 @@ env:
69
61
  ENV_FILE_PATH: ".env"
70
62
 
71
63
  jobs:
72
- # ===================================================================
73
64
  # 즉시 댓글 생성 (ubuntu-latest로 빠르게 실행)
74
- # ===================================================================
75
65
  notify-start:
76
66
  name: 진행 상황 알림
77
67
  runs-on: ubuntu-latest
@@ -183,9 +173,7 @@ jobs:
183
173
  core.setOutput('comment_id', comment.id);
184
174
  core.setOutput('start_time', startTime);
185
175
 
186
- # ===================================================================
187
176
  # 테스트 빌드 준비 (macOS 환경 설정)
188
- # ===================================================================
189
177
  prepare-test-build:
190
178
  name: 테스트 빌드 준비
191
179
  runs-on: macos-26
@@ -233,7 +221,6 @@ jobs:
233
221
  echo "ℹ️ Empty Secrets.xcconfig created (no secrets provided)"
234
222
  fi
235
223
 
236
- # 테스트 빌드 버전 설정 (version.yml에서 동적 읽기)
237
224
  - name: 테스트 빌드 버전 설정
238
225
  id: test_version
239
226
  working-directory: ${{ github.workspace }} # version_manager.py가 레포 루트 version.yml을 읽어야 함
@@ -260,7 +247,6 @@ jobs:
260
247
  echo "pr_number=$PR_NUMBER" >> $GITHUB_OUTPUT
261
248
  echo "📋 테스트 빌드: 버전=$VERSION, 빌드번호=$BUILD_NUMBER"
262
249
 
263
- # 브랜치명에서 이슈 번호 추출 및 GitHub API로 이슈 정보 가져오기
264
250
  - name: 브랜치명에서 이슈 정보 추출
265
251
  id: issue_info
266
252
  run: |
@@ -306,7 +292,6 @@ jobs:
306
292
  fi
307
293
  fi
308
294
 
309
- # 릴리즈 노트 생성
310
295
  - name: 릴리즈 노트 생성
311
296
  id: release_notes
312
297
  working-directory: ${{ github.workspace }} # final_release_notes.txt(upload 짝)는 레포 루트 기준
@@ -365,7 +350,6 @@ jobs:
365
350
  ${{ env.FLUTTER_PROJECT_DIR }}/assets/
366
351
  retention-days: 1
367
352
 
368
- # 진행 상황 업데이트 - 준비 실패
369
353
  - name: 진행 상황 업데이트 - 준비 실패
370
354
  if: failure() && github.event_name == 'repository_dispatch' && github.event.client_payload.pr_number != '' && needs.notify-start.outputs.comment_id != ''
371
355
  uses: actions/github-script@v9
@@ -413,9 +397,7 @@ jobs:
413
397
 
414
398
  console.log(`❌ 진행 상황 업데이트 완료: 준비 실패`);
415
399
 
416
- # ===================================================================
417
400
  # iOS 빌드 (xcodebuild 직접 사용)
418
- # ===================================================================
419
401
  build-ios-test:
420
402
  name: iOS 테스트 빌드
421
403
  runs-on: macos-26
@@ -648,7 +630,6 @@ jobs:
648
630
  ${{ env.FLUTTER_PROJECT_DIR }}/build-metadata.json
649
631
  retention-days: 1
650
632
 
651
- # 진행 상황 업데이트 - IPA 빌드 완료
652
633
  - name: 진행 상황 업데이트 - IPA 빌드 완료
653
634
  id: progress_step2
654
635
  if: success() && github.event_name == 'repository_dispatch' && github.event.client_payload.pr_number != '' && needs.notify-start.outputs.comment_id != ''
@@ -704,7 +685,6 @@ jobs:
704
685
  core.setOutput('elapsed', elapsedStr);
705
686
  core.setOutput('end_time', now.toString());
706
687
 
707
- # 빌드 실패 시 progress 댓글 업데이트
708
688
  - name: 빌드 실패 시 progress 댓글 업데이트
709
689
  if: failure() && github.event_name == 'repository_dispatch' && github.event.client_payload.pr_number != '' && needs.notify-start.outputs.comment_id != ''
710
690
  uses: actions/github-script@v9
@@ -762,9 +742,7 @@ jobs:
762
742
 
763
743
  console.log(`❌ 진행 상황 업데이트 완료: IPA 빌드 실패`);
764
744
 
765
- # ===================================================================
766
745
  # TestFlight 배포 (ios/fastlane/Fastfile 사용)
767
- # ===================================================================
768
746
  deploy-testflight-test:
769
747
  name: TestFlight 테스트 배포
770
748
  runs-on: macos-26
@@ -884,7 +862,6 @@ jobs:
884
862
  echo "❌ TestFlight 테스트 빌드 업로드 실패!"
885
863
  echo "로그를 확인해주세요."
886
864
 
887
- # 진행 상황 최종 업데이트 - 성공
888
865
  - name: 진행 상황 최종 업데이트 - 성공
889
866
  if: success() && github.event_name == 'repository_dispatch' && github.event.client_payload.pr_number != '' && needs.notify-start.outputs.comment_id != ''
890
867
  uses: actions/github-script@v9
@@ -947,7 +924,6 @@ jobs:
947
924
 
948
925
  console.log(`✅ 진행 상황 최종 업데이트 완료: 전체 성공 (${totalElapsed})`);
949
926
 
950
- # 진행 상황 최종 업데이트 - 실패
951
927
  - name: 진행 상황 최종 업데이트 - 실패
952
928
  if: failure() && github.event_name == 'repository_dispatch' && github.event.client_payload.pr_number != '' && needs.notify-start.outputs.comment_id != ''
953
929
  uses: actions/github-script@v9
@@ -1,7 +1,5 @@
1
1
  # project-auto-wizard:managed-workflow
2
- # ===================================================================
3
2
  # Flutter iOS TestFlight 자동 배포 워크플로우
4
- # ===================================================================
5
3
  #
6
4
  # 이 워크플로우는 Flutter iOS 앱을 빌드하여 TestFlight에 자동 배포합니다.
7
5
  #
@@ -14,30 +12,26 @@
14
12
  # 3. xcodebuild -exportArchive (IPA 생성, ExportOptions.plist 사용)
15
13
  # 4. fastlane deploy (ios/fastlane/Fastfile 사용, DEPLOY_MODE에 따라 TestFlight/심사 제출)
16
14
  #
17
- # ===================================================================
18
- # 🔑 필수 GitHub Secrets
19
- # ===================================================================
15
+ # 필수 GitHub Secrets
20
16
  #
21
- # 🔐 Apple 인증서 & 프로비저닝 프로파일:
17
+ # Apple 인증서 & 프로비저닝 프로파일:
22
18
  # APPLE_CERTIFICATE_BASE64: .p12 인증서 (base64 인코딩)
23
19
  # APPLE_CERTIFICATE_PASSWORD: .p12 인증서 비밀번호
24
20
  # APPLE_PROVISIONING_PROFILE_BASE64: .mobileprovision 파일 (base64 인코딩)
25
21
  # IOS_PROVISIONING_PROFILE_NAME: 프로비저닝 프로파일 이름
26
22
  #
27
- # 🔑 App Store Connect API:
23
+ # App Store Connect API:
28
24
  # APP_STORE_CONNECT_API_KEY_ID: API Key ID (10자리)
29
25
  # APP_STORE_CONNECT_ISSUER_ID: Issuer ID (UUID 형식)
30
26
  # APP_STORE_CONNECT_API_KEY_BASE64: AuthKey_XXXXXX.p8 파일 (base64 인코딩)
31
27
  # IOS_BUNDLE_ID (Secret 우선, 없으면 Variable): 앱 번들 ID —
32
28
  # store_prepare/store_submit을 쓰면 필수(비어 있으면 Fastfile이 명확한 오류로 중단)
33
29
  #
34
- # 📝 환경 설정 (선택):
30
+ # 환경 설정 (선택):
35
31
  # ENV_FILE (선택): .env 파일 내용
36
32
  # SECRETS_XCCONFIG (선택): ios/Flutter/Secrets.xcconfig 내용
37
33
  #
38
- # ===================================================================
39
- # 🛠️ 초기 설정 방법
40
- # ===================================================================
34
+ # 초기 설정 방법
41
35
  #
42
36
  # 1. GitHub Secrets 설정 (위 목록 참고)
43
37
  #
@@ -46,8 +40,6 @@
46
40
  # git commit -m "chore: iOS TestFlight 배포 설정"
47
41
  #
48
42
  # 3. {{MAIN_BRANCH}} 브랜치로 푸시하여 배포 시작
49
- #
50
- # ===================================================================
51
43
 
52
44
  name: PROJECT-iOS-TestFlight-Deploy
53
45
 
@@ -67,9 +59,7 @@ on:
67
59
  - store_prepare
68
60
  - store_submit
69
61
 
70
- # ============================================
71
- # 🔧 프로젝트별 설정 (아래 값들을 수정하세요)
72
- # ============================================
62
+ # 프로젝트별 설정 (아래 값들을 수정하세요)
73
63
  env:
74
64
  FLUTTER_PROJECT_DIR: "." # @wizard auto:flutter-root
75
65
  # 환경변수 전달 방식 (dart-define | dotenv) — 설치 시 선택값으로 자동 설정
@@ -78,20 +68,14 @@ env:
78
68
  XCODE_VERSION: "26.0"
79
69
  PROJECT_TYPE: "flutter"
80
70
 
81
- # ============================================
82
- # 📝 환경 파일 설정
83
- # ============================================
71
+ # 환경 파일 설정
84
72
  # dotenv 모드에서 .env 파일을 만들 경로 (Flutter 루트 기준)
85
73
  ENV_FILE_PATH: ".env"
86
74
 
87
- # ============================================
88
- # 📝 TestFlight Changelog 설정
89
- # ============================================
75
+ # TestFlight Changelog 설정
90
76
  SKIP_WAITING_FOR_BUILD_PROCESSING: "false"
91
77
 
92
- # ============================================
93
- # 📝 배포 모드 (store_only | store_prepare | store_submit)
94
- # ============================================
78
+ # 배포 모드 (store_only | store_prepare | store_submit)
95
79
  DEPLOY_MODE: ${{ github.event.inputs.deploy_mode || vars.IOS_DEPLOY_MODE || 'store_only' }} # @wizard fallback:ios-deploy-mode
96
80
 
97
81
  jobs:
@@ -230,9 +214,7 @@ jobs:
230
214
  retention-days: 1
231
215
  if-no-files-found: error
232
216
 
233
- # ============================================
234
217
  # iOS 빌드 (xcodebuild 직접 사용)
235
- # ============================================
236
218
  build-ios:
237
219
  name: iOS 앱 빌드
238
220
  runs-on: macos-26
@@ -392,9 +374,7 @@ jobs:
392
374
  retention-days: 1
393
375
  if-no-files-found: error
394
376
 
395
- # ============================================
396
377
  # TestFlight 배포 (ios/fastlane/Fastfile 사용)
397
- # ============================================
398
378
  deploy-testflight:
399
379
  name: TestFlight 배포
400
380
  runs-on: macos-26
@@ -1,20 +1,11 @@
1
1
  # project-auto-wizard:managed-workflow
2
- # ===================================================================
3
2
  # Go 빌드 검증 워크플로우 (CI Only)
4
- # ===================================================================
5
- #
6
- # 설명:
7
3
  # - {{DEVELOP_BRANCH}} 브랜치에 push/PR 시 go build/vet/test/lint로 검증
8
4
  # - Dockerfile이 필요 없어 CLI 도구·라이브러리 등 배포하지 않는 Go 프로젝트도 사용 가능
9
5
  # - go.mod의 go 지시자 버전을 자동으로 사용 (버전 하드코딩 없음)
10
- #
11
- # ===================================================================
12
6
 
13
7
  name: PROJECT-GO-CI
14
8
 
15
- # ===================================================================
16
- # 트리거 설정
17
- # ===================================================================
18
9
  on:
19
10
  push:
20
11
  branches:
@@ -24,9 +15,6 @@ on:
24
15
  - "{{DEVELOP_BRANCH}}" # {{DEVELOP_BRANCH}} 브랜치로의 PR 시 빌드 검증
25
16
  workflow_dispatch: # 수동 실행 허용
26
17
 
27
- # ===================================================================
28
- # 환경 변수 설정
29
- # ===================================================================
30
18
  env:
31
19
  # 프로젝트 고유 식별자
32
20
  PROJECT_NAME: "__PROJECT_NAME__" # @wizard ask:@repo
@@ -34,9 +22,7 @@ env:
34
22
  PROJECT_PATH: "." # @wizard auto:project-path
35
23
 
36
24
  jobs:
37
- # ===================================================================
38
25
  # 변경 감지 (모노레포에서 이 프로젝트 경로가 바뀌었는지 판별)
39
- # ===================================================================
40
26
  changes:
41
27
  name: 변경 감지
42
28
  runs-on: ubuntu-latest
@@ -58,9 +44,7 @@ jobs:
58
44
  project:
59
45
  - '${{ env.PROJECT_PATH == '.' && '**' || format('{0}/**', env.PROJECT_PATH) }}'
60
46
 
61
- # ===================================================================
62
- # 빌드 검증 작업
63
- # ===================================================================
47
+ # Job: 빌드 검증
64
48
  build-check:
65
49
  name: Go 빌드 검증
66
50
  runs-on: ubuntu-latest
@@ -68,37 +52,32 @@ jobs:
68
52
  if: ${{ github.event_name == 'workflow_dispatch' || needs.changes.outputs.project == 'true' }}
69
53
 
70
54
  steps:
71
- # 1. 소스코드 체크아웃
72
55
  - name: 코드 체크아웃
73
56
  uses: actions/checkout@v7
74
57
 
75
- # 2. Go 툴체인 설정 (go.mod의 go 지시자 버전 자동 사용)
58
+ # go.mod의 go 지시자 버전 자동 사용
76
59
  - name: Go 설정
77
60
  uses: actions/setup-go@v7
78
61
  with:
79
62
  go-version-file: go.mod
80
63
  cache: true
81
64
 
82
- # 3. 빌드 검증
83
65
  - name: go build 검증
84
66
  run: go build ./...
85
67
 
86
- # 4. 정적 분석
87
68
  - name: go vet 검증
88
69
  run: go vet ./...
89
70
 
90
- # 5. 테스트 실행
91
71
  - name: go test 실행
92
72
  run: go test ./...
93
73
 
94
- # 6. 린트 (v8은 golangci-lint v2 계열을 요구 — .golangci.yml이 v1 형식이면
95
- # 프로젝트에서 별도 조정 필요. version: latest는 v2 최신 패치를 자동으로 받는다)
74
+ # golangci-lint v8은 golangci-lint v2 계열을 요구 — .golangci.yml이 v1 형식이면
75
+ # 프로젝트에서 별도 조정 필요. version: latest는 v2 최신 패치를 자동으로 받는다
96
76
  - name: golangci-lint
97
77
  uses: golangci/golangci-lint-action@v8
98
78
  with:
99
79
  version: latest
100
80
 
101
- # 7. 빌드 검증 완료 메시지
102
81
  - name: 빌드 검증 완료
103
82
  run: |
104
83
  echo "✅ Go 빌드 검증이 성공적으로 완료되었습니다!"
@@ -109,9 +88,7 @@ jobs:
109
88
  echo " 📝 커밋: ${{ github.sha }}"
110
89
  echo " ⏰ 검증 시간: $(date '+%Y-%m-%d %H:%M:%S')"
111
90
 
112
- # ===================================================================
113
- # CI Gate (required check로 등록할 단일 job)
114
- # ===================================================================
91
+ # Job: CI Gate (required check로 등록할 단일 job)
115
92
  ci-gate:
116
93
  name: CI Gate
117
94
  if: ${{ always() }}