oto/agent-ops/rules/project/domain/pipeline/rules.md

1.4 KiB

pipeline

목적 / 책임

YAML에서 파싱된 DataCommand 리스트를 순차 실행하고, 조건 분기·반복·대기 등 파이프라인 흐름 제어를 담당한다.

포함 경로

  • lib/oto/pipeline/ — 파이프라인 실행 엔진 전체

제외 경로

  • lib/oto/commands/ — 실제 커맨드 구현체 (pipeline은 dispatch만 한다)
  • lib/oto/core/ — 태그 치환·데이터 합성 (pipeline 이전 단계)

주요 구성 요소

  • Pipeline — 커맨드 디스패치 루프
  • PipelineExe — 단일 커맨드 실행 핸들
  • PipelineExeHandle — 실행 결과 처리
  • PipelineCondition — 조건 평가
  • PipelineIf / PipelineSwitch — 분기 흐름
  • PipelineForeach / PipelineWhile — 반복 흐름
  • PipelineContain — 중첩 파이프라인
  • PipelineWaitUntil — 대기 흐름

유지할 패턴

  • 파이프라인 노드는 단일 책임: 흐름 제어만 한다, I/O는 커맨드에 위임
  • 새 흐름 제어 유형은 Pipeline* 네이밍으로 추가

다른 도메인과의 경계

  • command: PipelineCommand.byType()을 호출하는 시점이 경계. 커맨드 내부 로직은 pipeline이 모른다
  • core: DataComposer가 YAML → DataCommand 변환을 마친 후 pipeline이 실행 시작

금지 사항

  • pipeline 코드에서 외부 시스템(Git, Jenkins 등)을 직접 호출하지 않는다
  • 커맨드별 비즈니스 로직을 pipeline에 넣지 않는다