Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
dadd3c0
#321 refac(fe): npm install -g pnpm 제거
KimKyuHoi Mar 6, 2025
90a1ee8
#321 test(fe): 경로 설정
KimKyuHoi Mar 6, 2025
77d4e77
#321 test(fe): 테스트 경로 설정
KimKyuHoi Mar 6, 2025
78e14c7
#321 refac(fe): turbo cache 추가
KimKyuHoi Mar 6, 2025
93b477d
#321 refac(fe): 캐싱 저장기능 구현
KimKyuHoi Mar 6, 2025
fb7c55e
#321 refac(fe): 캐싱 저장 미리보기
KimKyuHoi Mar 6, 2025
8f675d9
#321 refac(fe): 경로별 캐싱저장 기능 추가 구현
KimKyuHoi Mar 6, 2025
67b8927
#321 refac(fe): PR 머지후 무조건 캐시 저장되도록 구현
KimKyuHoi Mar 6, 2025
47956d2
#321 refac(fe): node_modules 제거
KimKyuHoi Mar 6, 2025
bbb6269
#321 refac(fe): 의존성 설치 및 CI 단계 최적화:
KimKyuHoi Mar 6, 2025
85bd909
#321 test(fe): 캐싱 디버그 코드 추가
KimKyuHoi Mar 6, 2025
a4dc44e
#321 refac(fe): required 제거
KimKyuHoi Mar 6, 2025
9de920d
#321 test(fe): pnpm 캐싱 저장 구현
KimKyuHoi Mar 6, 2025
bf78df1
#321 refac(fe): 캐싱 저장
KimKyuHoi Mar 6, 2025
a6a21af
#321 refac(fe): frozen option 수정
KimKyuHoi Mar 6, 2025
6dd34fe
#321 test(fe): pnpm version확인하기
KimKyuHoi Mar 6, 2025
6af2345
#321 test(fe): pnpm version 확인
KimKyuHoi Mar 6, 2025
bb7d0eb
#321 refac(fe): pnpm 버전 변경
KimKyuHoi Mar 6, 2025
d64b5d0
#321 refac(fe): lockfile을 기반으로 설치 수행
KimKyuHoi Mar 6, 2025
9900d2d
#321 refac(fe): ci 환경 pnpm 설치
KimKyuHoi Mar 6, 2025
8aa91d2
#321 refac(fe): 작업 matrix 적용
KimKyuHoi Mar 6, 2025
3d0aa9d
#321 refac(fe): pnpm 캐싱 순서 적용
KimKyuHoi Mar 6, 2025
f2d10bb
#321 refac(fe): filter 기능 제거
KimKyuHoi Mar 6, 2025
c02fdcb
#321 refac(fe): turbo 병렬빌드 변경
KimKyuHoi Mar 6, 2025
c6f07ac
#321 test(fe): pnpm setup 버전 변경
KimKyuHoi Mar 6, 2025
28ca33d
#321 test(fe): fetch-depth 1개만 설정
KimKyuHoi Mar 6, 2025
7c26b48
#321 test(fe): node version 20 변경
KimKyuHoi Mar 6, 2025
54c3a53
#321 test(fe): turbo 동시 실행 수 증가
KimKyuHoi Mar 6, 2025
f9ba013
#321 test(fe): concurrency 개수 추가
KimKyuHoi Mar 6, 2025
9d851e3
#321 test(fe): concurrency 수 수정
KimKyuHoi Mar 6, 2025
195b276
#321 test(fe): concurrency 수 10개 수정
KimKyuHoi Mar 6, 2025
cc79699
#321 refac(fe): concurrency 개수 조정 및 cache dir 적용
KimKyuHoi Mar 6, 2025
e7a8e8b
#321 test(fe): concurrency 4 -> 8 조정
KimKyuHoi Mar 6, 2025
b689a87
#321 test(fe): concurrency 8 -> 10개 조정
KimKyuHoi Mar 6, 2025
4931403
#321 test(fe): turbo cache 명시적 선언 제거
KimKyuHoi Mar 6, 2025
efd3ed3
#321 refac(fe): node-version 단계내 pnpm 중복 캐싱 제거
KimKyuHoi Mar 6, 2025
e1fd33b
#321 refac(fe): concurrency 개수 조정
KimKyuHoi Mar 6, 2025
6b1341a
#321 test(fe): 코드 테스팅
KimKyuHoi Mar 6, 2025
ad8f27c
#321 test(fe): node setup version일때 캐싱 제거 및 offline 스크립트 제거
KimKyuHoi Mar 6, 2025
59838ee
#321 refac(fe): concurrency 개수 조정
KimKyuHoi Mar 6, 2025
a1779b4
#321 test(fe): concurrency 개수 테스트 4
KimKyuHoi Mar 6, 2025
890cce8
#321 test(fe): 캐시 공용 통합
KimKyuHoi Mar 6, 2025
e6ff642
#321 test(fe): 논리프로세서 100% 사용
KimKyuHoi Mar 6, 2025
9ae2095
#321 test(fe): 로컬 캐시로 설치할수있도록 수정
KimKyuHoi Mar 6, 2025
fd9bfb7
#321 test(fe): concurrency 값 10 조정
KimKyuHoi Mar 6, 2025
28fe355
#321 test(fe): 동시성 개수 test(4)
KimKyuHoi Mar 6, 2025
323a799
#321 refac(fe): 필터 경로 설정
KimKyuHoi Mar 6, 2025
cd098a7
#321 fix(fe): 경로 수정
KimKyuHoi Mar 6, 2025
66b2992
#321 fix(fe): 터보 필터 경로 수정
KimKyuHoi Mar 6, 2025
a707aaa
#321 refac(fe): 텔레메트리 비활성화 및 태스크 분리
KimKyuHoi Mar 6, 2025
0b7eb7b
#321 test(fe): 터보레포 병렬 태스크 제거
KimKyuHoi Mar 6, 2025
28060c0
#321 test(fe): pnpm 캐싱 추가
KimKyuHoi Mar 6, 2025
8061065
#321 test(fe): 캐싱 제거
KimKyuHoi Mar 6, 2025
3cb6025
#321 fix(fe): node_version 설정
KimKyuHoi Mar 6, 2025
e3a1155
#321 refac(fe): 명령어 통합
KimKyuHoi Mar 6, 2025
cd132d1
#321 refac(fe): turbo parallel 활성화
KimKyuHoi Mar 6, 2025
97e41d8
#321 refac(fe): turbo.json build,lint 캐싱 True설정
KimKyuHoi Mar 6, 2025
af58578
#321 refac(fe): turbo.json output 설정
KimKyuHoi Mar 6, 2025
ac13b00
#321 test(fe): 디버깅 코드 작성
KimKyuHoi Mar 6, 2025
30d106b
#321 refac(fe): 경로 세부 설정 구현
KimKyuHoi Mar 6, 2025
a0ea59a
#321 refac(fe): 경로 수정
KimKyuHoi Mar 6, 2025
b552222
#321 fix(fe): caching key 세부 설정
KimKyuHoi Mar 6, 2025
27c21fe
#321 refac(fe): fe-storybook pnpm install 글로벌 설치 제거
KimKyuHoi Mar 6, 2025
139132d
#321 refac(fe): pnpm 캐시 제거
KimKyuHoi Mar 6, 2025
9ea3476
#321 test(fe): 경로 제거
KimKyuHoi Mar 6, 2025
8d66341
#321 test(fe): 경로 변경
KimKyuHoi Mar 6, 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
62 changes: 22 additions & 40 deletions .github/workflows/fe-ci-storybook.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,62 +9,44 @@ on:
paths:
- 'src/frontend/packages/ui/**'
- '../workflows/fe-ci-storybook.yml'
push:
branches:
- fe-refac/fe-ci
# paths:
# - 'src/frontend/packages/ui/**'

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

jobs:
changes:
if: ${{ github.actor != 'l10nbot' }} # Avoid running for 'l10nbot'
if: "${{ github.actor != 'l10nbot' }}"
runs-on: ubuntu-latest
timeout-minutes: 15

timeout-minutes: 10
steps:
- name: Check out code
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 2
fetch-depth: 1

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22

- uses: pnpm/action-setup@v3
with:
version: 8
node-version: 20
# 캐시 옵션 제거 (pnpm 캐시는 별도로 설치 단계에서 관리)
# cache: 'pnpm'
# cache-dependency-path: 'src/frontend/pnpm-lock.yaml'

- name: Cache dependencies
uses: actions/cache/restore@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
path: |
~/.pnpm-store
**/node_modules
src/frontend/node_modules
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-

- name: Install pnpm
run: npm install -g pnpm
version: 9.12.3

- name: Install dependencies
run: |
cd src/frontend
pnpm install --strict-peer-dependencies=false --no-frozen-lockfile
pnpm add turbo --save-dev -w

- name: CI
run: |
cd src/frontend
pnpm turbo typescript lint format build-storybook --parallel
working-directory: src/frontend
run: pnpm install --frozen-lockfile --prefer-offline

required:
needs: [changes]
if: always()
runs-on: ubuntu-latest
steps:
- name: fail if conditional jobs failed
if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'skipped') || contains(needs.*.result, 'cancelled')
run: exit 1
- name: Build Storybook
working-directory: src/frontend
run: pnpm turbo build-storybook --parallel
63 changes: 16 additions & 47 deletions .github/workflows/fe-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,69 +8,38 @@ on:
- main
paths:
- 'src/frontend/**'
- '!src/frontend/packages/ui/**'
- '../workflows/fe-ci.yml'
# push:
# branches:
# - fe-feat/ci-storybook
# paths:
# - '!src/frontend/packages/ui/**'
# - fe-refac/fe-ci

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

jobs:
changes:
if: ${{ github.actor != 'l10nbot' }} # Avoid running for 'l10nbot'
if: ${{ github.actor != 'l10nbot' }}
runs-on: ubuntu-latest
timeout-minutes: 15

timeout-minutes: 10
steps:
- name: Check out code
- name: Checkout Code
uses: actions/checkout@v4

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
fetch-depth: 2
version: 9.12.3

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22

- uses: pnpm/action-setup@v3
with:
version: 8

- name: Cache dependencies
uses: actions/cache/restore@v4
with:
path: |
~/.pnpm-store
**/node_modules
src/frontend/node_modules
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-
node-version: 20
cache: 'pnpm'
cache-dependency-path: 'src/frontend/pnpm-lock.yaml'

- name: Install pnpm
run: npm install -g pnpm

- name: Install dependencies
run: |
cd src/frontend
pnpm install --strict-peer-dependencies=false --no-frozen-lockfile
pnpm add turbo --save-dev -w

- name: CI
- name: Install, Lint, and Build
working-directory: src/frontend
run: |
cd src/frontend
pnpm turbo typescript lint format build --parallel

required:
needs: [changes]
if: always()
runs-on: ubuntu-latest
steps:
- name: fail if conditional jobs failed
if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'skipped') || contains(needs.*.result, 'cancelled')
run: exit 1
pnpm install --frozen-lockfile --prefer-offline
pnpm turbo lint --filter=web --filter=@workspace/ui --parallel
pnpm turbo build --filter=web --parallel
69 changes: 69 additions & 0 deletions .github/workflows/fe-save-cache-on-merge.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Save Cache on PR Merge

on:
pull_request:
types: [closed]
branches:
- main
- dev
# push:
# branches:
# - fe-refac/fe-ci

jobs:
save-cache:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 2

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20

- name: Setup pnpm
uses: pnpm/action-setup@v3
with:
version: 8

- name: Install dependencies
run: |
cd src/frontend
pnpm install --strict-peer-dependencies=false --no-frozen-lockfile
pnpm add turbo --save-dev -w

- name: Build for updating .turbo cache (optional)
run: |
cd src/frontend
pnpm turbo build --parallel

# 디렉터리 존재 여부 보장: 캐시 저장 전에 해당 경로가 없으면 생성
- name: Ensure caching directories exist
run: |
mkdir -p ~/.pnpm-store
mkdir -p src/frontend/apps/web/.turbo
mkdir -p src/frontend/packages/ui/.turbo

- name: Save pnpm store cache
if: always()
uses: actions/cache@v4
with:
path: ~/.pnpm-store
key: ${{ runner.os }}-pnpm-${{ hashFiles('src/frontend/pnpm-lock.yaml') }}

- name: Save Turborepo cache for web app
if: always()
uses: actions/cache@v4
with:
path: src/frontend/apps/web/.turbo
key: ${{ runner.os }}-turbo-web-${{ hashFiles('src/frontend/pnpm-lock.yaml') }}

- name: Save Turborepo cache for ui package
if: always()
uses: actions/cache@v4
with:
path: src/frontend/packages/ui/.turbo
key: ${{ runner.os }}-turbo-ui-${{ hashFiles('src/frontend/pnpm-lock.yaml') }}
18 changes: 10 additions & 8 deletions src/frontend/turbo.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,28 +19,30 @@
"tasks": {
"build": {
"dependsOn": ["^build"],
"inputs": ["$TURBO_DEFAULT$", ".env*"],
"outputs": [".next/**"]
"inputs": ["$TURBO_DEFAULT$"],
"outputs": ["./apps/web/.next/**"],
"cache": true,
"persistent": true
},
"build-storybook": {
"dependsOn": ["^build-storybook"],
"inputs": ["$TURBO_DEFAULT$", ".env*"],
"outputs": ["storybook-static/**"],
"inputs": ["$TURBO_DEFAULT$"],
"outputs": ["./packages/ui/storybook-static/**"],
"cache": true,
"persistent": false
},
"storybook": {
"dependsOn": ["^storybook"],
"inputs": ["$TURBO_DEFAULT$", ".env*"],
"outputs": ["storybook-static/**"],
"inputs": ["$TURBO_DEFAULT$"],
"outputs": ["./packages/ui/storybook-static/**"],
"cache": true,
"persistent": false
},
"lint": {
"dependsOn": ["^lint"],
"inputs": ["$TURBO_DEFAULT$", "**/*.{js,ts,jsx,tsx}"],
"cache": false,
"persistent": false
"cache": true,
"persistent": true
},
"dev": {
"cache": false,
Expand Down