Skip to content

ci: PR마다 lint·타입체크·단위·E2E 자동 실행 (#30) + E2E 셀렉터 하드닝#115

Merged
Malloc72P merged 1 commit into
mainfrom
claude/issue-30-ci
Jun 29, 2026
Merged

ci: PR마다 lint·타입체크·단위·E2E 자동 실행 (#30) + E2E 셀렉터 하드닝#115
Malloc72P merged 1 commit into
mainfrom
claude/issue-30-ci

Conversation

@Malloc72P

Copy link
Copy Markdown
Owner

개요

이슈 #30의 마지막 선택 항목인 CI(GitHub Actions) 를 추가합니다. 이로써 #30(테스트 환경 구축)의 모든 항목이 완료됩니다. 더불어 직전 PR #114에서 트레이드오프로 남겼던 E2E 셀렉터를 #87(a11y) 반영분에 맞춰 견고화합니다.

변경 사항

  • .github/workflows/ci.ymlpush(main)/pull_request(main)에서 단일 job 실행
    • lint → tsc → unit(jest) → e2e(playwright) 순차 검증
    • pnpm store 캐시(setup-node), concurrency로 중복 실행 취소
    • CI=true가 자동 주입되어 playwright가 프로덕션 빌드(build && start) 로 E2E 검증
    • 실패 시 HTML 리포트(트레이스 포함) 아티팩트 업로드
  • playwright.config.ts — CI 리포터에 html 추가(아티팩트용)
  • e2e/responsive.spec.ts.tabler-icon-menu-2(아이콘 라이브러리 내부 클래스) → getByRole('button', { name: '메뉴 열기' }) + dialog('사이트 메뉴'). #87로 접근성 라벨이 생겨 role 기반으로 전환 가능해짐

비용

  • 저장소가 public이라 GitHub Actions 표준 러너는 무제한 무료. private 무료 풀(2,000분/월)을 소모하지 않음.

검증 (로컬)

  • pnpm --filter blog lint 0 · tsc --noEmit clean · 단위 72개 통과
  • CI=true pnpm --filter blog test:e2e(프로덕션 빌드 경로) E2E 7개 통과, HTML 리포트 생성 확인
  • 이 PR에서 워크플로우가 실제로 실행되어 검증됩니다.

🤖 Generated with Claude Code

- .github/workflows/ci.yml: pnpm 캐시 + Playwright(chromium), concurrency로 중복 실행 취소
  CI=true에서 playwright가 프로덕션 빌드(build && start)로 E2E를 검증
- playwright.config: CI 리포터에 html 추가(실패 시 트레이스 포함 리포트 아티팩트)
- responsive.spec: #87로 추가된 접근성 라벨 사용 → 아이콘 클래스(.tabler-icon-menu-2) 대신
  getByRole('button', name:'메뉴 열기')와 dialog 'site 메뉴'로 견고화

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 29, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
blog Ignored Ignored Jun 29, 2026 7:46am

@Malloc72P

Copy link
Copy Markdown
Owner Author

✅ CI 실제 실행 검증 완료

이 PR에서 워크플로우가 처음 돌았고 전부 통과했습니다.

  • lint · type-check · unit(jest) · E2E(7개, 26.9s) 모두 green
  • 잡 전체 1분 21초 (public 저장소라 무료)
  • E2E는 CI=true프로덕션 빌드(build && start) 경로에서 검증됨

참고 (비차단 경고)

  • GitHub가 actions/checkout@v4·setup-node@v4·pnpm/action-setup@v4의 Node20 런타임 deprecation 안내를 띄웁니다. 현재 최신 메이저 버전이라 우리가 당장 할 조치는 없고, 액션 측 업데이트를 기다리면 됩니다(실행은 정상).

이로써 #30(테스트 환경 구축)의 모든 항목이 완료됩니다.

@Malloc72P Malloc72P merged commit 6d6e062 into main Jun 29, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant