fix(ci): switch timing from OTEL receiver to --progress=plain pipe filter

Dagger v0.20.8 only supports 'grpc' and 'http/protobuf' OTLP protocols;
'http/json' triggers a WARN and exports nothing.  The new approach pipes
dagger's --progress=plain output through a Python script that echoes it
in real-time and prints a timing table at EOF.  No HTTP server, no port
files, no protocol issues — works locally and in CI.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Thomas SharedInbox
2026-05-20 11:43:26 +02:00
co-authored by Claude Sonnet 4.6
parent ac2178916e
commit 691f2beec2
2 changed files with 38 additions and 152 deletions
+6 -17
View File
@@ -252,29 +252,18 @@ tasks:
- dagger call --progress=plain -q -m ci --source=. publish-website --ssh-key env:SSH_PRIVATE_KEY --ssh-user "$SSH_USER" --ssh-host "$SSH_HOST"
check-dagger:
desc: Run full check suite via Dagger (with OTEL timing report if python3 is available)
desc: Run full check suite via Dagger (with timing report if python3 is available)
cmds:
- |
if ! command -v python3 >/dev/null 2>&1; then
dagger call --progress=plain -q -m ci --source=. check
exit $?
fi
PORTFILE=$(mktemp)
python3 ci/otelrecv.py --port-file="$PORTFILE" &
RECV_PID=$!
cleanup() {
kill "$RECV_PID" 2>/dev/null
wait "$RECV_PID" 2>/dev/null
rm -f "$PORTFILE"
}
trap cleanup EXIT
until [ -s "$PORTFILE" ]; do sleep 0.05; done
PORT=$(cat "$PORTFILE")
RC=0
OTEL_EXPORTER_OTLP_ENDPOINT="http://127.0.0.1:$PORT" \
OTEL_EXPORTER_OTLP_PROTOCOL="http/json" \
dagger call --progress=plain -q -m ci --source=. check || RC=$?
exit $RC
RC_FILE=$(mktemp)
(dagger call --progress=plain -q -m ci --source=. check; echo $? >"$RC_FILE") 2>&1 | python3 ci/otelrecv.py
RC=$(cat "$RC_FILE" 2>/dev/null || echo 1)
rm -f "$RC_FILE"
exit "$RC"
integration-android:
desc: UI integration tests on a connected Android emulator (Stalwart on host, emulator reaches it via 10.0.2.2)