2026년 기본 Python 파이프라인
2026년 Python 생태계는 5년 전과 완전히 다르게 흘러갔어. 대부분의 워크플로에서 uv (Astral)가 pip와 virtualenv를 대체했고, ruff가 flake8, isort, black 자리를 차지했지. 타입 검사는 pyright나 mypy를 쓰고, 테스트 러너는 pytest가 표준이 됐어. 설정 파일은 pyproject.toml로 모두 중앙화하지.
기본 Python CI는 대략 이런 구조야:
- Checkout.
uv설치 (빠르고 단일 바이너리).uv sync—pyproject.toml과 lockfile에서 의존성 설치.ruff check+ruff format --check— 린트와 포맷팅 검사.mypy또는pyright— 타입 검사.pytest— 커버리지와 함께 테스트.
편의보다 버전 고정이 중요해
Python은 항상 버전을 고정해: python-version: '3.12'처럼 쓰고, '3.x'나 공백은 절대 안 돼. uv도 마찬가지로 astral-sh/setup-uv@v3처럼 특정 버전을 고정해. 하위 도구들이 새 릴리스를 내보낼 때마다 변화가 생기는 CI는 금요일 오후에 믿을 수 없어.