Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
341ee49
#348 fix(fe): 캐싱 디렉토리 경로 지정
KimKyuHoi Mar 15, 2025
629bb6f
#348 fix(fe): 경로 지정
KimKyuHoi Mar 15, 2025
3576f9e
#348 fix(fe): turbo 키 값 변경
KimKyuHoi Mar 15, 2025
e8d482b
#348 fix(fe): pnpm 캐싱 제거
KimKyuHoi Mar 15, 2025
ea01fd9
#348 fix(fe): 캐싱 키 경로 수정 및 pnpm 캐시 저장
KimKyuHoi Mar 15, 2025
f44f7a5
#348 fix(fe): 병렬 빌드 수정
KimKyuHoi Mar 15, 2025
2ffef26
#348 fix(fe): 캐시 디렉토리 지정
KimKyuHoi Mar 15, 2025
df17c68
#348 fix(fe): turbo 캐싱 불러오기 추가
KimKyuHoi Mar 15, 2025
bd1e9b8
#348 test(fe): 이전 ci 테스트
KimKyuHoi Mar 15, 2025
14d59ff
#348 fix(fe): 중복 캐시 제거
KimKyuHoi Mar 15, 2025
57e8587
#348 fix(fe): 경로 수정
KimKyuHoi Mar 15, 2025
53a2e3e
#348 feat(fe): 캐싱 저장하도록 추가
KimKyuHoi Mar 15, 2025
0f98af2
#348 feat(fe): pnpm 캐싱 추가
KimKyuHoi Mar 15, 2025
cc0732f
fix(fe): build 수정
KimKyuHoi Mar 15, 2025
ead915d
#348 fix(fe): 경로 수정
KimKyuHoi Mar 15, 2025
4d2377b
#348 fix(fe): 경로 원상복구
KimKyuHoi Mar 15, 2025
3f0d7b6
#348 fix(fe): 캐싱 디버깅
KimKyuHoi Mar 15, 2025
288f14b
#348 fix(fe): 터보 초기화
KimKyuHoi Mar 15, 2025
fc05dae
#348 fix(fe): output key 수정, dependsOn 설정
KimKyuHoi Mar 16, 2025
1d55469
#348 fix(fe): log level 제거
KimKyuHoi Mar 16, 2025
8bf73c5
#348 fix(fe): output key 수정
KimKyuHoi Mar 16, 2025
a608d3d
#348 feat(fe): fe 캐싱 키 추가
KimKyuHoi Mar 16, 2025
fc75eb1
#348 fix(fe): 경로 수정 및 filter 추가
KimKyuHoi Mar 16, 2025
01722d4
#348 feat(fe): next cache 추가
KimKyuHoi Mar 16, 2025
d939875
#348 fix(fe): 로그 수정
KimKyuHoi Mar 16, 2025
21d1e1f
#348 feat(fe): 디버깅 로그 활성화
KimKyuHoi Mar 16, 2025
25e7f15
#348 feat(fe): 디버깅 로그 추가
KimKyuHoi Mar 16, 2025
54d9152
#348 feat(fe): input, output key 설정
KimKyuHoi Mar 16, 2025
09031a3
#348 fix(fe): save cache 경로 수정
KimKyuHoi Mar 16, 2025
fc18beb
#348 fix(fe): code rollback
KimKyuHoi Mar 16, 2025
fec5df3
#348 fix(fe): 캐싱 경로 수정
KimKyuHoi Mar 16, 2025
b6eb821
#348 fix(fe): 캐시 수정
KimKyuHoi Mar 17, 2025
936aa69
#348 fix(fe): 캐시 수정
KimKyuHoi Mar 17, 2025
fc0fcf1
#348 feat(fe): 의존성 설치 조건문 추가
KimKyuHoi Mar 17, 2025
0d530cc
#348 fix(fe): 자체 터보레포 수정
KimKyuHoi Mar 17, 2025
f1d82bb
#348 feat(fe): build 스크립트 병렬 실행
KimKyuHoi Mar 17, 2025
5e70e24
#348 fix(fe): pnpm 캐시 경로 수정
KimKyuHoi Mar 17, 2025
e6635a8
#348 fix(fe): workspace 명 수정
KimKyuHoi Mar 17, 2025
47e70a4
#348 fix(fe): package 경로 수정
KimKyuHoi Mar 17, 2025
2d9afe0
#348 feat(fe): working-directory 설정
KimKyuHoi Mar 17, 2025
e0af6e7
#348 fix(fe): 조건문 수정
KimKyuHoi Mar 17, 2025
6e03a7e
#348 fix(fe): exex -> run 스크립트 수정
KimKyuHoi Mar 17, 2025
67d1291
#348 fix(fe): 스크립트 분리
KimKyuHoi Mar 17, 2025
81c8ec2
#348 fix(fe): exec -> run 으로 수정
KimKyuHoi Mar 17, 2025
afbea35
#348 fix(fe): working-directory 수정
KimKyuHoi Mar 17, 2025
8002688
#348 fix(fe): 스크립트 수정
KimKyuHoi Mar 17, 2025
d231a7a
#348 fix(fe): 루트환경에서 실행
KimKyuHoi Mar 17, 2025
5fa5def
#348 fix(fe): working-directory 수정
KimKyuHoi Mar 17, 2025
7504c6a
#348 fix(fe): next cache 경로 수정
KimKyuHoi Mar 17, 2025
2932260
#348 fix(fe): path 경로 수정
KimKyuHoi Mar 17, 2025
3baf83c
#348 feat(fe): env파일 경로 추가
KimKyuHoi Mar 17, 2025
00b3fc1
#348 test(fe): 환경변수 디버깅
KimKyuHoi Mar 17, 2025
1514f5f
#348 fix(fe): globalEnv 제거
KimKyuHoi Mar 17, 2025
d20888a
#348 fix(fe): 빌드 환경변수 수정 및 timeout 추가
KimKyuHoi Mar 17, 2025
fe5a77e
#348 fix(fe): debug 모드 추가
KimKyuHoi Mar 17, 2025
627ceff
#348 feat(fe): 디버깅 모드 제거 및 의존성 추가
KimKyuHoi Mar 17, 2025
2ecb275
#348 feat(fe): build-cache output 추가
KimKyuHoi Mar 17, 2025
d63bff5
#348 fix(fe): turbo.json 수정
KimKyuHoi Mar 17, 2025
7306c6f
#348 fix(fe): 의존성 추가
KimKyuHoi Mar 17, 2025
1b0f702
#348 feat(fe): 의존성 재추가
KimKyuHoi Mar 17, 2025
edd8217
#348 feat(fe): caching 경로 수정
KimKyuHoi Mar 17, 2025
987bbd1
#348 feat(fe): 비동기 코드 시간 추가
KimKyuHoi Mar 17, 2025
9a67342
#348 feat(fe): 저장 및 캐싱 수정
KimKyuHoi Mar 17, 2025
3a1b560
#348 feat(fe): remove 파일
KimKyuHoi Mar 17, 2025
e925d1e
#348 fix(fe): 의존성 복원
KimKyuHoi Mar 17, 2025
bd5d29c
#348 feat(fe): build태스크 캐시 제거
KimKyuHoi Mar 17, 2025
84bfd5a
#348 fix(fe): cache 제거
KimKyuHoi Mar 17, 2025
0138ae9
#348 feat(fe): cache 재추가
KimKyuHoi Mar 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 44 additions & 23 deletions .github/workflows/fe-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,13 @@ on:
paths:
- 'src/frontend/**'
- './fe-ci.yml'
push:
branches:
- fe-fix/ci-bug

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
cancel-in-progress: false

jobs:
lint-test:
Expand All @@ -21,7 +24,6 @@ jobs:
timeout-minutes: 10
env:
TZ: Asia/Seoul
TURBO_CACHE_DIR: ./src/frontend/.turbo
strategy:
matrix:
task: [lint, test]
Expand All @@ -46,27 +48,31 @@ jobs:
with:
path: ~/.pnpm-store
key: ${{ runner.os }}-pnpm-${{ hashFiles('src/frontend/pnpm-lock.yaml') }}
restore-keys: ${{ runner.os }}-pnpm-
restore-keys: |
${{ runner.os }}-pnpm-

- name: Restore Turbo cache
id: restore_turbo_cache
uses: actions/cache@v4
with:
path: src/frontend/.turbo
key: ${{ runner.os }}-turbo-${{ hashFiles('src/frontend/pnpm-lock.yaml') }}
restore-keys: ${{ runner.os }}-turbo
restore-keys: |
${{ runner.os }}-turbo-

- name: Install Dependencies
- name: Install Dependencies (if necessary)
working-directory: src/frontend
run: pnpm install --frozen-lockfile --prefer-offline
run: |
if [ ! -d "node_modules" ]; then
pnpm install --frozen-lockfile --prefer-offline
fi

- name: Run Task with Cache
working-directory: src/frontend
run: |
if [ "${{ matrix.task }}" = "lint" ]; then
pnpm turbo lint --parallel --cache-dir=.turbo
pnpm exec turbo lint --parallel
elif [ "${{ matrix.task }}" = "test" ]; then
pnpm turbo test --filter=web --parallel --cache-dir=.turbo
pnpm exec turbo test --filter=web --parallel
fi

build:
Expand All @@ -75,7 +81,10 @@ jobs:
timeout-minutes: 10
env:
TZ: Asia/Seoul
TURBO_CACHE_DIR: ./src/frontend/.turbo
strategy:
matrix:
package: ['web', '@workspace/ui']

steps:
- name: Checkout Code
uses: actions/checkout@v4
Expand All @@ -97,27 +106,39 @@ jobs:
with:
path: ~/.pnpm-store
key: ${{ runner.os }}-pnpm-${{ hashFiles('src/frontend/pnpm-lock.yaml') }}
restore-keys: ${{ runner.os }}-pnpm-
restore-keys: |
${{ runner.os }}-pnpm-

- name: Restore Turbo cache
id: restore_turbo_build_cache
uses: actions/cache@v4
with:
path: src/frontend/.turbo
key: ${{ runner.os }}-turbo-${{ github.sha }}
restore-keys: ${{ runner.os }}-turbo-
key: ${{ runner.os }}-turbo-${{ hashFiles('src/frontend/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-turbo-

- name: Restore Next.js cache (for web)
if: matrix.package == 'web'
uses: actions/cache@v4
with:
path: src/frontend/apps/web/.next
key: ${{ runner.os }}-nextjs-${{ hashFiles('src/frontend/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-nextjs-

- name: Install Dependencies
working-directory: src/frontend
run: pnpm install --frozen-lockfile --prefer-offline
run: |
pnpm install --frozen-lockfile --prefer-offline

- name: Run Build with Cache
- name: Run Build with Cache (Web)
if: matrix.package == 'web'
working-directory: src/frontend
run: pnpm turbo build --parallel --cache-dir=.turbo
run: |
pnpm run build --filter=web --parallel

- name: Save Turbo cache
if: always() && steps.restore_turbo_build_cache.outputs.cache-hit != 'true'
uses: actions/cache@v4
with:
path: src/frontend/.turbo
key: ${{ runner.os }}-turbo-${{ github.sha }}
- name: Run Build with Cache (@workspace/ui)
if: matrix.package == '@workspace/ui'
working-directory: src/frontend
run: |
pnpm run build --filter=@workspace/ui --parallel
3 changes: 3 additions & 0 deletions src/frontend/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,12 @@ coverage
out/
build
dist
es
lib

# Debug
npm-debug.log*
pnpm-debug.log*

# Misc
.DS_Store
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,8 +135,9 @@ describe('useWorkspaceChannels', () => {
{ wrapper },
);
rerender();
await waitFor(() =>
result.current.joinedChannels.some((ch) => ch.channelId === 3),
await waitFor(
() => result.current.joinedChannels.some((ch) => ch.channelId === 3),
{ timeout: 2000 },
);
expect(result.current.joinedChannels).toContainEqual(mockSocketMessage);
expect(result.current.unjoinedChannels).toEqual([]);
Expand Down
2 changes: 1 addition & 1 deletion src/frontend/apps/web/vitest.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ export default defineConfig({
plugins: [react()],
test: {
environment: 'jsdom',
testTimeout: 10000,
testTimeout: 25000,
setupFiles: './vitest-setup.ts',
globals: true,
exclude: [
Expand Down
29 changes: 7 additions & 22 deletions src/frontend/turbo.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
{
"$schema": "https://turbo.build/schema.json",
"cacheDir": ".turbo/cache",
"globalEnv": [
"NEXT_PUBLIC_REAL_BASE_URL",
"NEXT_PUBLIC_MODE",
"NEXT_PUBLIC_BASE_URL",
"NEXT_PUBLIC_GATEWAY_SERVER_PORT",
Expand All @@ -18,11 +20,10 @@
"ui": "tui",
"tasks": {
"build": {
"dependsOn": [],
"dependsOn": ["^build"],
"inputs": ["$TURBO_DEFAULT$"],
"outputs": ["apps/web/.next/**/*", "packages/ui/dist/**/*"],
"cache": true,
"persistent": false
"outputs": [".next/**", "dist/**", "!.next/cache/**", "build/**"],
"cache": true
},
"test": {
"dependsOn": [],
Expand All @@ -38,14 +39,14 @@
"build-storybook": {
"dependsOn": ["^build-storybook"],
"inputs": ["$TURBO_DEFAULT$"],
"outputs": ["./packages/ui/storybook-static/**"],
"outputs": ["storybook-static/**"],
"cache": true,
"persistent": false
},
"storybook": {
"dependsOn": ["^storybook"],
"inputs": ["$TURBO_DEFAULT$"],
"outputs": ["./packages/ui/storybook-static/**"],
"outputs": ["storybook-static/**"],
"cache": true,
"persistent": false
},
Expand All @@ -58,22 +59,6 @@
"dev": {
"cache": false,
"persistent": true
},
"format": {
"dependsOn": ["^format"],
"inputs": ["$TURBO_DEFAULT$", "**/*.{js,ts,jsx,tsx,json,md}"],
"cache": false,
"persistent": false
},
"typescript": {
"dependsOn": ["^typescript"],
"inputs": [
"$TURBO_DEFAULT$",
"tsconfig.json",
"packages/**/tsconfig.json"
],
"cache": true,
"persistent": false
}
}
}