DaleStudy / DaleStudy/daleui.com
CI 빌드 캐시 도입
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 3
- Forks
- 0
- Avg merge
- 1d 14h
- Merged PRs (30d)
- 26
Description
현재 integration.yml, deploy.yml에는 캐시가 전혀 없어 매 실행마다 의존성 설치·브라우저 다운로드·Vite 번들을 처음부터 반복하고 있습니다.
콘텐츠/다이어그램/컴포넌트가 늘어날수록 CI 시간이 선형으로 증가하므로, 프레임워크 변경 없이 actions/cache로 미리 대비합니다.
▎ 관련: #89 (Astro 마이그레이션 검토), #90 (loader cache 논의)
▎ OG 이미지 캐시(public/og)는 preview.yml에 이미 적용되어 있어 이 이슈 범위에서 제외합니다.
의존성 캐시
bun install 결과를 캐시합니다. key가 bun.lock 해시라 lockfile이 바뀔 때만 무효화되어 정합성 문제가 없습니다. 세 워크플로우 어디에도 없는, 가장
기본이자 효과가 큰 캐시입니다.
- uses: oven-sh/setup-bun@v2
- uses: actions/cache@v4
with:
path: ~/.bun/install/cache
key: bun-${{ runner.os }}-${{ hashFiles('bun.lock') }}
restore-keys: bun-${{ runner.os }}-
Playwright 브라우저 캐시
rehype-mermaid가 다이어그램 렌더에 사용하는 헤드리스 브라우저 다운로드를 재사용합니다. 다이어그램을 포함한 글이 늘어나면 이 다운로드 비용이
커집니다.
- uses: actions/cache@v4
with:
path: ~/.cache/ms-playwright
key: playwright-${{ runner.os }}-${{ hashFiles('bun.lock') }}
Vite 빌드 캐시
node_modules/.vite의 사전 번들(pre-bundle) 결과를 재사용합니다. RR7 스택에서 Astro loader cache에 개념적으로 가장 가까운 계층으로, 의존성이나 빌드
설정이 그대로면 재번들을 건너뜁니다.
- uses: actions/cache@v4
with:
path: node_modules/.vite
key: vite-${{ runner.os }}-${{ hashFiles('bun.lock', 'vite.config.ts') }}
restore-keys: vite-${{ runner.os }}-
적용 대상
- 대상: integration.yml, deploy.yml
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with .github/workflows/integration.yml and .github/workflows/deploy.yml, then inspect the existing cache setup in preview.yml for conventions. Add dependency, Playwright, and Vite caches using the paths and lockfile/configuration keys described in the issue, while leaving preview.yml's OG image cache unchanged. Run both workflows and confirm they complete successfully and reuse caches on a subsequent run.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- bun, github-actions, playwright, typescript, vite
- Domain
- build-system, ci-cd, devops
- Issue type
- Feature
- Difficulty
- 2/5
- Estimated time
- Half a day
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 78/100