DeployRunner
Orchestrates an ordered sequence of deploy steps fail-fast, turning each step's outcome into a structured report suitable for logging, CI integration, and host-level decision-making (abort the deployment if critical steps fail). Domain-blind: steps own their own effects (docker compose, coa commands, HTTP probes, etc.). The runner is pure orchestration.
DeployRunner::__construct()
public function __construct(array $steps, ?Psr\Log\LoggerInterface $logger = null):Parameters
| Name | Type | Description |
|---|---|---|
| $steps | list<DeployStepInterface> | |
| $logger | ?Psr\Log\LoggerInterface |
DeployRunner::run()
public function run(): Milpa\Ops\Deploy\DeployReportCorre las pasos en orden y se detiene en la primera que falla. Fail-fast y no «corre todo y reporta»: un paso que falla suele dejar el sistema a medio preparar, y seguir adelante produce errores posteriores que apuntan al lugar equivocado. El reporte trae el paso que falló y las que alcanzaron a correr, para que quien lo lea sepa dónde quedó parado. No lanza: el fallo viaja en el reporte, y quien llama decide si aborta.