77 branches : [main, develop]
88
99jobs :
10- quality-check :
11- name : Code Quality Check
10+ # 변경 감지
11+ detect-changes :
12+ name : Detect Changes
1213 runs-on : ubuntu-latest
14+ outputs :
15+ web : ${{ steps.filter.outputs.web }}
16+ admin : ${{ steps.filter.outputs.admin }}
17+ root : ${{ steps.filter.outputs.root }}
18+ steps :
19+ - name : Checkout repository
20+ uses : actions/checkout@v4
21+
22+ - name : Check changed files
23+ uses : dorny/paths-filter@v3
24+ id : filter
25+ with :
26+ filters : |
27+ web:
28+ - 'apps/web/**'
29+ admin:
30+ - 'apps/admin/**'
31+ root:
32+ - 'package.json'
33+ - 'pnpm-lock.yaml'
34+ - 'pnpm-workspace.yaml'
35+ - 'turbo.json'
36+ - '.github/workflows/**'
37+
38+ # Web 앱 품질 체크
39+ web-quality-check :
40+ name : Web - Quality Check
41+ runs-on : ubuntu-latest
42+ needs : detect-changes
43+ if : needs.detect-changes.outputs.web == 'true' || needs.detect-changes.outputs.root == 'true'
1344 steps :
1445 - name : Checkout repository
1546 uses : actions/checkout@v4
@@ -28,13 +59,80 @@ jobs:
2859 - name : Install dependencies
2960 run : pnpm install --frozen-lockfile
3061
31- - name : Run Biome (lint & format) & TypeScript
32- run : pnpm run ci:check
62+ - name : Run checks (lint & typecheck)
63+ run : pnpm --filter @solid-connect/web run ci:check
64+
65+ # Admin 앱 품질 체크
66+ admin-quality-check :
67+ name : Admin - Quality Check
68+ runs-on : ubuntu-latest
69+ needs : detect-changes
70+ if : needs.detect-changes.outputs.admin == 'true' || needs.detect-changes.outputs.root == 'true'
71+ steps :
72+ - name : Checkout repository
73+ uses : actions/checkout@v4
74+
75+ - name : Install pnpm
76+ uses : pnpm/action-setup@v3
77+ with :
78+ version : 9
79+
80+ - name : Setup Node.js
81+ uses : actions/setup-node@v4
82+ with :
83+ node-version : " 22.x"
84+ cache : " pnpm"
85+
86+ - name : Install dependencies
87+ run : pnpm install --frozen-lockfile
88+
89+ - name : Run lint check
90+ run : pnpm --filter @solid-connect/admin run lint
91+
92+ - name : Run format check
93+ run : pnpm --filter @solid-connect/admin run format
94+
95+ # Web 앱 빌드
96+ web-build :
97+ name : Web - Build
98+ runs-on : ubuntu-latest
99+ needs : [detect-changes, web-quality-check]
100+ if : |
101+ always() &&
102+ (needs.detect-changes.outputs.web == 'true' || needs.detect-changes.outputs.root == 'true') &&
103+ needs.web-quality-check.result == 'success'
104+ steps :
105+ - name : Checkout repository
106+ uses : actions/checkout@v4
107+
108+ - name : Install pnpm
109+ uses : pnpm/action-setup@v3
110+ with :
111+ version : 9
112+
113+ - name : Setup Node.js
114+ uses : actions/setup-node@v4
115+ with :
116+ node-version : " 22.x"
117+ cache : " pnpm"
118+
119+ - name : Install dependencies
120+ run : pnpm install --frozen-lockfile
121+
122+ - name : Build web application
123+ run : pnpm --filter @solid-connect/web run build
124+ env :
125+ NODE_ENV : production
33126
34- build :
35- name : Build Verification
127+ # Admin 앱 빌드
128+ admin-build :
129+ name : Admin - Build
36130 runs-on : ubuntu-latest
37- needs : quality-check
131+ needs : [detect-changes, admin-quality-check]
132+ if : |
133+ always() &&
134+ (needs.detect-changes.outputs.admin == 'true' || needs.detect-changes.outputs.root == 'true') &&
135+ needs.admin-quality-check.result == 'success'
38136 steps :
39137 - name : Checkout repository
40138 uses : actions/checkout@v4
53151 - name : Install dependencies
54152 run : pnpm install --frozen-lockfile
55153
56- - name : Build Next.js application
57- run : pnpm run build
154+ - name : Build admin application
155+ run : pnpm --filter @solid-connect/admin run build
58156 env :
59157 NODE_ENV : production
0 commit comments