project-auto-wizard 0.12.0 → 0.12.1
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 +3 -7
- 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 +1 -1
- 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 -3
- package/payload/workflows/common/PROJECT-COMMON-AUTO-CHANGELOG-CONTROL.yaml +1 -4
- 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 -5
- 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,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
|
-
#
|
|
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
|
-
#
|
|
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
|
-
#
|
|
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
|
-
#
|
|
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
|
-
#
|
|
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
|
-
#
|
|
95
|
-
#
|
|
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() }}
|