DaleStudy / DaleStudy/daleui.com

CI 빌드 캐시 도입

Open Beginner friendly
#91 2 comments 1 reaction 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.