Skip to Content
Nextra 4.0 is released πŸŽ‰

πŸ—Ό Lighthouse ν…ŒμŠ€νŠΈ

이 ν”„λ‘œμ νŠΈμ—μ„œλŠ” Lighthouse ν…ŒμŠ€νŠΈλ₯Ό CI ν™˜κ²½μ—μ„œ μžλ™μœΌλ‘œ μ‹€ν–‰ν•©λ‹ˆλ‹€.
μ•„λž˜λŠ” .github/workflows/test.yml μ›Œν¬ν”Œλ‘œμš°μ˜ lighthouse-test jobμ—μ„œ μˆ˜ν–‰ν•˜λŠ” μ£Όμš” λ‹¨κ³„μž…λ‹ˆλ‹€.

πŸ’» ν…ŒμŠ€νŠΈ ν™˜κ²½

🐳 Docker 기반 Lighthouse ν…ŒμŠ€νŠΈ

이 μ›Œν¬ν”Œλ‘œμš°λŠ” Dockerλ₯Ό μ‚¬μš©ν•˜μ—¬ Lighthouse ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•©λ‹ˆλ‹€. Docker Composeλ₯Ό μ‚¬μš©ν•˜μ—¬ μ•„λž˜μ™€ 같이 μ›Ή μ„œλ²„μ™€ Lighthouse CI λŸ¬λ„ˆ μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‹€ν–‰ν•˜κ³ , ν…ŒμŠ€νŠΈ κ²°κ³Όλ₯Ό GitHub Actions μ•„ν‹°νŒ©νŠΈλ‘œ μ—…λ‘œλ“œν•©λ‹ˆλ‹€.

πŸ”„ ν…ŒμŠ€νŠΈ μ›Œν¬ν”Œλ‘œμš°

단계별 μ„€λͺ…

  1. μ½”λ“œ 체크아웃 및 μΊμ‹œ 볡원

    • μ†ŒμŠ€ μ½”λ“œλ₯Ό μ²΄ν¬μ•„μ›ƒν•˜κ³ , λ³€ν™˜λœ docker-compose 파일 μΊμ‹œλ₯Ό λ³΅μ›ν•©λ‹ˆλ‹€.
  2. GitHub Container Registry 둜그인

    • Lighthouse ν…ŒμŠ€νŠΈ κ΄€λ ¨ 이미지λ₯Ό λΉŒλ“œ 및 μ‹€ν–‰ν•˜κΈ° μœ„ν•΄ ghcr.io에 λ‘œκ·ΈμΈν•©λ‹ˆλ‹€.
  3. 도컀 λ„€νŠΈμ›Œν¬ μ€€λΉ„

    • test_networkλΌλŠ” μ™ΈλΆ€ 도컀 λ„€νŠΈμ›Œν¬κ°€ μ—†μœΌλ©΄ μƒμ„±ν•©λ‹ˆλ‹€.
  4. Lighthouse 이미지 λΉŒλ“œ

    • docker-compose.gha.converted.yaml νŒŒμΌμ„ μ‚¬μš©ν•˜μ—¬ web 및 lighthouse-runner 2개의 이미지λ₯Ό λΉŒλ“œν•©λ‹ˆλ‹€.
  5. Lighthouse ν…ŒμŠ€νŠΈ μ‹€ν–‰

    • webκ³Ό lighthouse-runner μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‹€ν–‰ν•˜μ—¬ Lighthouse ν…ŒμŠ€νŠΈλ₯Ό μˆ˜ν–‰ν•©λ‹ˆλ‹€.
    • lighthouse-runner μ»¨ν…Œμ΄λ„ˆμ—μ„œ ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•©λ‹ˆλ‹€.
    • lighthouse-runner μ»¨ν…Œμ΄λ„ˆμ˜ λͺ¨λ“  ν”„λ‘œμ„ΈμŠ€κ°€ μ™„λ£Œλ˜λ©΄ 두 μ»¨ν…Œμ΄λ„ˆλ₯Ό μ€‘μ§€ν•©λ‹ˆλ‹€.
  6. Lighthouse 리포트 μ—…λ‘œλ“œ

    • ν…ŒμŠ€νŠΈ κ²°κ³ΌλŠ” .lighthouserc.cjs 섀정에 따라 Temporary Public Storage 에 μ—…λ‘œλ“œλ©λ‹ˆλ‹€.

πŸ§ͺ μ–΄λ–€ ν…ŒμŠ€νŠΈκ°€ μ‹€ν–‰λ˜λ‚˜μš”?

Lighthouse CI

Lighthouse ν…ŒμŠ€νŠΈλŠ” Lighthouse CIλ₯Ό 기반으둜 ν•˜λ©°,
tools/lighthouse-ci 디렉토리 내에 μ •μ˜λœ 섀정에 따라 μ‹€ν–‰λ©λ‹ˆλ‹€.

  • LighthouseλŠ” μ›Ή νŽ˜μ΄μ§€μ˜ μ„±λŠ₯, μ ‘κ·Όμ„±, SEO, 베슀트 ν”„λž™ν‹°μŠ€ 등을 μžλ™μœΌλ‘œ λΆ„μ„ν•©λ‹ˆλ‹€.
  • ν…ŒμŠ€νŠΈ κ²°κ³ΌλŠ” HTML, JSON λ“± λ‹€μ–‘ν•œ ν˜•μ‹μ˜ 리포트둜 μƒμ„±λ˜μ–΄ μ»¨ν…Œμ΄λ„ˆ 내뢀에 μ €μž₯되고, Temporary Public Storage 에 μ—…λ‘œλ“œλ©λ‹ˆλ‹€.
  • ν…ŒμŠ€νŠΈ μ‹€νŒ¨ μ‹œμ—λ„ μ›Œν¬ν”Œλ‘œμš°κ°€ μ€‘λ‹¨λ˜μ§€ μ•Šλ„λ‘ μ˜ˆμ™Έλ₯Ό μ²˜λ¦¬ν•©λ‹ˆλ‹€.

즉, μ£Όμš” μ›Ή νŽ˜μ΄μ§€μ— λŒ€ν•œ Lighthouse μžλ™ 뢄석이 μ‹€ν–‰λ˜κ³ , κ·Έ κ²°κ³Όκ°€ 리포트둜 λ‚¨μŠ΅λ‹ˆλ‹€.

πŸ“¦ ν…ŒμŠ€νŠΈ μ•„ν‹°νŒ©νŠΈ

Lighthouse μžλ™ 뢄석 κ²°κ³Ό

ν…ŒμŠ€νŠΈκ°€ μ™„λ£Œλ˜λ©΄ Lighthouse λ¦¬ν¬νŠΈκ°€ μƒμ„±λ˜μ–΄ Temporary Public Storage 에 μ—…λ‘œλ“œλ©λ‹ˆλ‹€. 그리고 PR(Pull Request)의 Check 결과에 μ—°λ™λ˜μ–΄, μ›Ή νŽ˜μ΄μ§€μ˜ ν’ˆμ§ˆ μ§€ν‘œλ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

lhci-reports-on-mr-checks

λͺ©μ 

이 λ¦¬ν¬νŠΈλŠ” μ›Ή νŽ˜μ΄μ§€μ˜ μ„±λŠ₯, μ ‘κ·Όμ„±, SEO λ“± λ‹€μ–‘ν•œ ν’ˆμ§ˆ μ§€ν‘œλ₯Ό μžλ™μœΌλ‘œ λΆ„μ„ν•˜κ³ , κ°œμ„ ν•  수 μžˆλŠ” 정보λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

πŸ“Œ μ°Έκ³ 

μžμ„Έν•œ μ›Œν¬ν”Œλ‘œμš°λŠ” .github/workflows/test.yml 파일의 lighthouse-test μž‘μ„ μ°Έκ³ ν•˜μ„Έμš”.


Last updated on