rara/agent-test/dev/workflow-execution-smoke.md
toki d67b128344
Some checks are pending
ci / validate (push) Waiting to run
add agent-test
2026-07-18 23:55:20 +09:00

99 lines
3.6 KiB
Markdown

---
test_env: dev
test_profile: workflow-execution-smoke
domain: workflow-execution
verification_type: smoke
last_rule_updated_at: 2026-07-18
---
# workflow-execution-smoke dev 테스트
## 읽기 조건
- Go worker, executor registry, Python executor 또는 Protobuf 실행 계약을 원격
환경에서 검증할 때
## 적용 범위
- `apps/worker/`, `packages/go/workflow/`, `packages/python/`, `api/proto/`,
`gen/go/rara/v1/`
## 분류
- domain: workflow-execution
- verification_type: smoke
- scope: 원격 runner의 Go worker와 Python gRPC executor 검증
## 환경
- host: `ssh toki@toki-labs.com`
- repo root: `/Users/toki/agent-work/rara-dev`
- port: Go Worker `127.0.0.1:18072`, Python Executor gRPC `127.0.0.1:19070`
- runtime: Go 1.26, Python 3.12
- package manager: Go modules, Python venv/pip
- docker: login shell의 Docker Desktop/Engine 27.4.0, PostgreSQL 통합 검증 전 daemon 재확인
- external service: Go worker 상태 전이 검증에는 PostgreSQL 필요
- model endpoint: 기본값 없음. adaptation 모델 검증은 별도 승인된 endpoint 필요
- credential: database/model credential 원문은 문서와 출력에 남기지 않는다.
## 명령
- setup: `make setup`
- lint: `.venv/bin/ruff format --check packages/python/src packages/python/tests && .venv/bin/ruff check packages/python/src packages/python/tests`
- unit: `go test ./packages/go/workflow/... && PYTHONPATH=packages/python/src .venv/bin/python -m pytest packages/python/tests`
- smoke: `go build -o /tmp/rara-worker ./apps/worker/cmd/worker`
- service: PostgreSQL 준비 후 Go worker는 `RARA_LISTEN=127.0.0.1:18072`,
Python executor는 `RARA_PYTHON_LISTEN_HOST=127.0.0.1`
`RARA_PYTHON_LISTEN_PORT=19070`으로 실행
- e2e: PostgreSQL과 executor가 준비된 경우 ping step의 lease와 terminal 상태 확인
- model: ML dependency와 승인된 endpoint가 준비된 경우에만 수행
- full-cycle: `make test && make build`
## 필수 검증
- 원격 checkout의 HEAD가 검증 대상 source와 일치한다.
- Go workflow와 Python executor 테스트, Ruff 검사가 통과한다.
- Go worker binary가 빌드된다.
- Protobuf 변경 시 `make proto` 후 Go/Python 생성물과 호환성 영향을 확인한다.
- service smoke 시 `18072``19070`이 각각 의도한 프로세스에만 점유된다.
## 보조 검증
- `lsof -nP -iTCP:18072 -sTCP:LISTEN`
`lsof -nP -iTCP:19070 -sTCP:LISTEN`으로 충돌과 종료 후 반환을 확인한다.
- PostgreSQL을 준비한 경우 step lease·성공·실패·재시도 상태 전이를 확인한다.
## 판정 기준
- source identity가 일치하고 Go/Python 테스트, Ruff, worker 빌드가 exit code 0으로 종료한다.
- service smoke를 수행한 경우 Go worker health/readiness와 Python gRPC capability
응답을 확인한다.
- PostgreSQL·ML dependency가 없으면 source 검증과 통합 차단을 구분해 보고한다.
## 기준 출력 예시
```text
ok git.toki-labs.com/toki/rara/packages/go/workflow
```
## 차단 기준
- 원격 checkout 부재·source 불일치, Go 1.26/Python 3.12/`.venv` 부재
- `18072` 또는 `19070` 점유
- 상태 전이 검증에 필요한 PostgreSQL 또는 모델 검증에 필요한 ML dependency 부재
## 보고 항목
- 원격 branch/HEAD:
- 실행한 명령:
- 성공한 검증:
- 실패/차단된 검증:
- 생략 사유:
- 남은 위험:
## 금지 사항
- local test 결과를 원격 worker/executor evidence로 보고하지 않는다.
- 생성된 Protobuf 파일을 직접 수정하지 않는다.
- ML dependency가 없는 환경에서 adaptation 모델 실행이 검증됐다고 보고하지 않는다.
- secret, token, 개인 endpoint 원문을 기록하지 않는다.