feat(P25): deploy outputs (SSM + PR comment) + error reporting via Lambda + stage comments
---ci--- project: acdl phase: 25 milestone: v1.7 status: execute ---/ci---
This commit is contained in:
+29
-1
@@ -263,7 +263,35 @@ PY
|
||||
python3 core/outbox_writer.py "$WORK/event.json" > "$WORK/outbox_item.json" || fail "outbox write failed"
|
||||
echo "outbox: $(python3 -c "import json; d=json.load(open('$WORK/outbox_item.json')); print('contractId=', d['contractId'], 'hash=', d['hash'][:16]+'...')")"
|
||||
|
||||
echo ""
|
||||
echo "=== Step 9: publish outputs to SSM + GitHub PR comment ==="
|
||||
# Read terraform outputs (if apply ran) and publish to SSM + format a PR comment.
|
||||
# In --check-only mode, skip (no terraform apply runs).
|
||||
if [ "$CHECK_ONLY" = "0" ]; then
|
||||
cd terraform/spike
|
||||
TF_OUTPUTS=$(terraform output -json 2>/dev/null || echo "{}")
|
||||
cd "$ROOT"
|
||||
python3 <<PY > "$WORK/outputs_step.json" 2>/dev/null || true
|
||||
import json, sys
|
||||
sys.path.insert(0, "$ROOT")
|
||||
from core.output_publisher import publish_to_ssm, format_comment, post_github_comment
|
||||
tf_raw = json.loads('''$TF_OUTPUTS''')
|
||||
# Flatten terraform outputs ({"name": {"value": ...}}) to a flat dict
|
||||
outputs = {k: v.get("value") if isinstance(v, dict) else v for k, v in tf_raw.items()}
|
||||
ssm_results = publish_to_ssm(outputs, "dev", "$CONTRACT_ID")
|
||||
comment = format_comment(outputs, "dev", "$CONTRACT_ID", ssm_results)
|
||||
posted = post_github_comment(comment)
|
||||
print(json.dumps({"ssm": ssm_results, "posted": posted, "comment": comment}))
|
||||
PY
|
||||
if [ -f "$WORK/outputs_step.json" ]; then
|
||||
echo "outputs published to SSM: $(python3 -c "import json; d=json.load(open('$WORK/outputs_step.json')); print(len([v for v in d.get('ssm',{}).values() if v]), 'parameters')" 2>/dev/null || echo "done")"
|
||||
if [ "$QUIET" = "0" ]; then
|
||||
python3 -c "import json; d=json.load(open('$WORK/outputs_step.json')); print(d.get('comment',''))" 2>/dev/null || true
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "=== PLATFORM E2E OK ==="
|
||||
echo "contract -> resolver -> stack -> terraform plan -> Checkov -> confidence ($BAND) -> outbox"
|
||||
echo "contract -> resolver -> stack -> terraform plan -> Checkov -> confidence ($BAND) -> outbox -> outputs"
|
||||
exit 0
|
||||
Reference in New Issue
Block a user