Skip to content

chore(repo): GitHub Actions CI 파이프라인 구성 #3

Description

@ehlung

목표

PR이 열릴 때마다 lint·type check를 자동으로 실행해 코드 품질을 검증한다.

배경 / 필요성

  • CI 없이 코드 리뷰 봇만 붙이면 실제 빌드 오류를 잡지 못함
  • 브랜치 보호 규칙에 "CI 통과 필수" 상태 체크를 연동해야 머지 전 검증이 완성됨
  • 테스트 코드가 생기면 test step을 추가하는 확장 구조로 설계

작업 범위

  • .github/workflows/ci.yml 작성 — PR 대상 브랜치 develop, main 트리거
  • apps/web — lint(eslint src/), type check(tsc --noEmit), ESLint 9 flat config(eslint.config.mjs) 추가
  • apps/api — lint(eslint "{src,test}/**/*.ts"), type check(tsc --noEmit), ESLint 9 flat config(eslint.config.mjs) 추가
  • apps/mobile — lint (expo lint)
  • packages/shared, packages/database — type check
  • CI 통과 후 머지 가능하도록 브랜치 보호 상태 체크 추가

완료 조건 (Acceptance Criteria)

  • PR 열면 GitHub Actions CI가 자동 실행됨
  • lint 또는 type check 실패 시 머지 차단됨
  • main·develop 브랜치 보호에 CI 상태 체크 필수 조건 추가됨
  • Node.js 22.x + pnpm 10.x 캐싱 적용으로 실행 시간 최소화

제안하는 구현 방식

  • pnpm 공식 캐싱 액션 활용 (pnpm/action-setup)
  • 앱별 필터링으로 변경된 패키지만 검사하는 방식은 초기에 단순하게 전체 실행으로 시작
  • 테스트 step은 플레이스홀더로 추가해 나중에 채울 수 있도록 구성
  • Next.js 15에서 next lint 명령이 제거됨 → apps/webeslint 직접 실행
  • apps/web, apps/api 모두 ESLint 9 flat config 형식(eslint.config.mjs) 사용

관련 이슈

없음

Metadata

Metadata

Assignees

Labels

chore빌드·설정·CI 관련 작업

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions