16 lines
2.2 KiB
Markdown
16 lines
2.2 KiB
Markdown
---
|
|
id: "ac-0007"
|
|
status: retired
|
|
---
|
|
|
|
# built-container package 및 entrypoint smoke
|
|
|
|
## Criterion
|
|
|
|
GHCR 게시 후보는 source tree가 아니라 실제로 빌드된 image 안에서 `python -c "import trex_core"`와 `trex-core-daemon --help`, `trex-core --help`, `trex-core-reset --help`를 각각 실행하여 package와 세 console entrypoint가 설치되어 있음을 입증해야 한다. 또한 그 source commit에서 source-controlled canonical SQL migration filename inventory를 도출하고, image의 installed package runtime path에서 읽은 migration inventory가 non-empty이며 canonical inventory와 정확히 일치함을 입증해야 한다. 각 probe는 exit code `0`이어야 하며 daemon setup, migration 적용, DB·RabbitMQ·Redis·portfolio-hub·KIS 연결, 실제 주문 또는 config·credential 해석을 수행해서는 안 된다.
|
|
|
|
## Verification
|
|
|
|
- 성공 조건: network가 차단되고 운영 config·credential이 없는 최소권한 container에서 기존 네 probe와 installed migration inventory probe가 각각 정해진 timeout 안에 exit code `0`으로 끝나며 container가 정리된다. 현재 회귀 기준선에는 canonical SQL 파일 20개가 있으나, 영구 성공 조건은 고정 수량이 아니라 해당 source commit의 non-empty exact inventory parity이다.
|
|
- 실패·경계 조건: package import 실패, entrypoint 누락, installed migration inventory의 empty·누락·추가·filename mismatch, nonzero exit, timeout, 외부 연결 시도 또는 cleanup 실패는 smoke nonzero로 이어지고 image publish를 차단한다. `trex-core-reset` probe에는 `--yes` 또는 config argument를 전달하지 않는다.
|
|
- 검사 방법: built wheel의 SQL filename set을 source-controlled canonical set과 대조하고, built image를 대상으로 하는 smoke harness와 recording-runner 단위 테스트로 정확한 기존 네 command와 side-effect-free installed inventory probe, per-command timeout, network 차단, no-config/no-secret 환경, failure propagation 및 cleanup을 검증하며 CI에서 실제 local image smoke를 실행한다. Inventory probe는 migration을 적용하거나 DB 또는 다른 service에 연결하지 않는다. |