98 lines
3.7 KiB
Markdown
98 lines
3.7 KiB
Markdown
---
|
|
test_env: dev
|
|
test_profile: platform-common-smoke
|
|
domain: platform-common
|
|
verification_type: smoke
|
|
last_rule_updated_at: 2026-07-18
|
|
---
|
|
|
|
# platform-common-smoke dev 테스트
|
|
|
|
## 읽기 조건
|
|
|
|
- 설정, database, HTTP lifecycle, observability, artifact store, integration port 또는
|
|
배포 구성을 원격 환경에서 검증할 때
|
|
|
|
## 적용 범위
|
|
|
|
- `packages/go/artifact/`, `packages/go/config/`, `packages/go/database/`,
|
|
`packages/go/httpserver/`, `packages/go/integration/`,
|
|
`packages/go/observability/`, `configs/`, `deploy/`
|
|
|
|
## 분류
|
|
|
|
- domain: platform-common
|
|
- verification_type: smoke
|
|
- scope: 원격 runner의 공통 adapter, 포트 override, 서비스 조립 검증
|
|
|
|
## 환경
|
|
|
|
- host: `ssh toki@toki-labs.com`
|
|
- repo root: `/Users/toki/agent-work/rara-dev`
|
|
- port: HTTP `18070-18072`, Python gRPC `19070`, PostgreSQL host publish 후보 `15470`
|
|
- runtime: macOS arm64, Go 1.26, Python 3.12
|
|
- package manager: Go modules, Python venv/pip
|
|
- docker: login shell의 Docker Desktop/Engine 27.4.0, 일반 비대화형 PATH에는 없음
|
|
- external service: service readiness와 database adapter 통합 검증에는 PostgreSQL 필요
|
|
- model endpoint: 기본값 없음
|
|
- credential: secret/token/API key 원문은 문서와 출력에 남기지 않는다.
|
|
|
|
## 명령
|
|
|
|
- setup: `make setup`
|
|
- lint: 변경한 Go 파일의 `gofmt` 상태와 Python Ruff 검사 확인
|
|
- unit: `go test ./packages/go/artifact/... ./packages/go/config/... ./packages/go/database/... ./packages/go/httpserver/... ./packages/go/integration/... ./packages/go/observability/...`
|
|
- smoke: `make build`
|
|
- e2e: PostgreSQL과 dev service override가 준비된 경우 세 Go service의 health/readiness 확인
|
|
- model: integration provider가 명시적으로 준비된 경우에만 수행
|
|
- full-cycle: `make test && make build`
|
|
|
|
## 필수 검증
|
|
|
|
- 원격 checkout의 HEAD가 검증 대상 source와 일치한다.
|
|
- 변경된 공통 Go package 테스트가 통과하고 세 Go service가 모두 빌드된다.
|
|
- 원격 실행 시 local 기본 포트 대신 `18070-18072`, `19070`, 필요 시 `15470`을 사용한다.
|
|
- 설정·배포·로그·trace에 secret 원문이 포함되지 않았는지 확인한다.
|
|
- Docker/PostgreSQL 부재 시 integration 검증을 통과로 간주하지 않는다.
|
|
|
|
## 보조 검증
|
|
|
|
- `lsof`로 `13070`, `18070-18072`, `15470`, `16370`, `19070`,
|
|
`19170-19172` 전체를 확인해 `70` 슬롯 부분 충돌을 탐지한다.
|
|
- container runtime이 준비되면 PostgreSQL은 host `15470`에서 container `5432`로
|
|
publish하고 service readiness를 확인한다.
|
|
- artifact filesystem root가 runner의 허용된 작업 경로 밖으로 벗어나지 않는지 확인한다.
|
|
|
|
## 판정 기준
|
|
|
|
- source identity가 일치하고 테스트와 전체 build가 exit code 0으로 종료한다.
|
|
- dev port override가 IOP shared `18080-18099`, `19080`, `19090`을 사용하지 않는다.
|
|
- 실행한 integration만 근거와 함께 통과로 보고하고 미준비 dependency는 차단으로 남긴다.
|
|
|
|
## 기준 출력 예시
|
|
|
|
```text
|
|
ok git.toki-labs.com/toki/rara/packages/go/...
|
|
```
|
|
|
|
## 차단 기준
|
|
|
|
- 원격 checkout 부재·source 불일치, 필수 runtime 부재, dev port 점유
|
|
- database 통합 검증에 필요한 PostgreSQL 부재
|
|
- config override 없이 local 포트를 shared remote host에 publish하려는 경우
|
|
|
|
## 보고 항목
|
|
|
|
- 원격 branch/HEAD:
|
|
- 실행한 명령:
|
|
- 성공한 검증:
|
|
- 실패/차단된 검증:
|
|
- 생략 사유:
|
|
- 남은 위험:
|
|
|
|
## 금지 사항
|
|
|
|
- local 기본 포트 `18080-18082`, `19090`, `5432`를 shared remote runner에
|
|
그대로 publish하지 않는다.
|
|
- 운영 secret이나 개인 endpoint를 config 또는 테스트 문서에 기록하지 않는다.
|
|
- 공통 adapter 테스트를 특정 plane의 정책 검증으로 대체하지 않는다.
|