agentic-ai-engineering/adw_modules/adw_pipeline.py

39 lines
1.1 KiB
Python

"""ADW Pipeline — run phase scripts and stop on failures unless ZTE is enabled."""
import json
import subprocess
import sys
PHASES = ["plan", "build", "test", "review", "document", "ship"]
def run_phase(phase, adw_id):
r = subprocess.run(
[sys.executable, f"adw_modules/adw_{phase}_iso.py", "--adw-id", adw_id],
capture_output=True,
text=True,
timeout=300,
)
try:
data = json.loads(r.stdout or "{}")
except json.JSONDecodeError:
data = {"stdout": r.stdout[:500]}
data.update({"phase": phase, "ok": r.returncode == 0})
if r.stderr:
data["stderr"] = r.stderr[:500]
return data
def run_pipeline(adw_id, zte=False):
results = []
for phase in PHASES:
result = run_phase(phase, adw_id)
results.append(result)
if not result["ok"] and not zte:
break
return {"adw_id": adw_id, "zte": zte, "phases": results, "shipped": all(r["ok"] for r in results)}
if __name__ == "__main__":
aid = sys.argv[sys.argv.index("--adw-id") + 1] if "--adw-id" in sys.argv else "test"
print(json.dumps(run_pipeline(aid, "--zte" in sys.argv), indent=2))