99 lines
3.6 KiB
Markdown
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 원문을 기록하지 않는다.
|