Skip to content

chore(ci): develop PR pytest·Ruff 자동 검증 추가 #34

Closed

Description

@hywznn

목표

AI 앱의 핵심 회귀와 환경별 선택 검증을 PR 단계에서 구분해 확인할 수 있는 자동 CI를 구축합니다.

완료된 작업

Core PR CI

  • .github/workflows/ci.yml 추가
  • develop, main 대상 Pull Request에서 자동 실행
  • Python 3.12와 고정 uv 버전 사용
  • uv sync --frozen --extra dev로 의존성 재현
  • 외부 LLM·OCR·Intent 모델을 비활성화한 결정론적 환경 구성
  • 로컬 .env를 읽지 않도록 FOWOCO_ENV_FILE=/dev/null 적용
  • core marker 제외 기준 명시
  • app + tests Ruff 오류 0건
  • 핵심 pytest 기준선 통과

Qdrant 계약

  • language-retrieval 선택 의존성 별도 설치
  • Qdrant 관련 테스트에 qdrant_integration marker 적용
  • Qdrant 계약 전용 Ubuntu Job 구성
  • 관련 계약 테스트 8개 통과

Windows OCR 계약

  • windows_ocr marker 등록
  • non-Windows에서 PowerShell 부재를 명시적으로 구분
  • Windows runner 전용 Job 구성
  • Secret 없이 로컬 기록 서버를 사용하는 계약 테스트 2개 통과

품질 경계와 Workflow 운영

  • AI 앱 app + tests를 PR Ruff 기준으로 고정
  • 내장 hwp-editor와 운영 스크립트 기존 부채를 앱 판정에서 분리
  • PR CI와 main 배포 Workflow 책임 분리
  • 동시 갱신 시 이전 CI 실행 자동 취소
  • Core·Qdrant·Windows OCR Check를 각각 독립된 이름으로 표시

최종 검증

Core pytest       655 passed, 3 skipped, 16 deselected
Qdrant contract     8 passed
PowerShell OCR       2 passed
Ruff app + tests     passed
GitHub Actions       3 checks passed

의도적으로 분리한 범위

  • BERT·A.X·LLM 실모델 검증은 Token과 모델 캐시가 필요한 Staging/수동 Smoke Test로 유지
  • Required Check 강제는 현재 저장소 보호 규칙 정책에서 사용하지 않으므로 이번 코드 작업에서 제외
  • hwp-editor·운영 스크립트의 전체 Ruff 정리는 별도 소유권 범위

연결 PR

PR #67이 main에 병합되면 이 이슈를 완료 처리합니다.

Activity

  1. self-assigned this
    on Aug 11, 2026
  2. added
    type:test단위·통합·계약·E2E 테스트
    type:toolingCI·검증·개발 도구 작업
    area:platformFastAPI Runtime·배포·공통 기반
    status:ready범위가 확정되어 바로 시작 가능
    status:in-review구현을 마치고 리뷰 또는 병합 대기
    and removed
    type:test단위·통합·계약·E2E 테스트
    status:ready범위가 확정되어 바로 시작 가능
    on Aug 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:platformFastAPI Runtime·배포·공통 기반status:in-review구현을 마치고 리뷰 또는 병합 대기type:toolingCI·검증·개발 도구 작업

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions