Skip to content

Commit dfe22c7

Browse files
committed
e2e: keep the evidence when a mesh test fails
The harness already dumps container logs to tests/e2e/logs/ for tests that did not complete, but CI only uploaded ./_artifacts, which bats never populates - so the a2a label-gate flake left nothing to diagnose. Upload the dump directory, and print node-1's [A2A] gate verdicts inline when the labelled send fails, since that gate fail-closes transient handshake errors into the same 403 as a policy denial.
1 parent 6b46e58 commit dfe22c7

2 files changed

Lines changed: 9 additions & 1 deletion

File tree

.github/workflows/e2e.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,8 @@ jobs:
7777
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
7878
with:
7979
name: e2e-logs-${{ env.JOB_NAME }}-${{ github.run_id }}
80-
path: ./_artifacts
80+
# tests/e2e/logs is where the bats harnesses dump container logs
81+
# for tests that did not complete (see mesh_cleanup_test_resources).
82+
path: |
83+
./_artifacts
84+
./tests/e2e/logs

tests/e2e/a2a_mesh.bats

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@ teardown() {
8787
-e SAM_REQUIRED_LABELS="region=eu" \
8888
"${A2A_ECHO_IMAGE}" python3 /workspace/client.py "${mesh_base}" "hello eu"
8989
echo "labelled client output: $output"
90+
if [[ "$status" -ne 0 ]]; then
91+
echo "node-1 label gate verdicts:"
92+
docker logs "${MESH_PREFIX}-node-1" 2>&1 | grep -F '[A2A]' || true
93+
fi
9094
[[ "$status" -eq 0 ]]
9195
[[ "$output" == *"agent> echo: hello eu"* ]]
9296

0 commit comments

Comments
 (0)