Skip to content

feat(ci): report nightly test history to tcache - #3624

Open
OlufemiAdeOlusile wants to merge 1 commit into
masterfrom
add-nightly-history-upload
Open

feat(ci): report nightly test history to tcache#3624
OlufemiAdeOlusile wants to merge 1 commit into
masterfrom
add-nightly-history-upload

Conversation

@OlufemiAdeOlusile

@OlufemiAdeOlusile OlufemiAdeOlusile commented Aug 18, 2026

Copy link
Copy Markdown
Collaborator

Store a failed nightly's JUnit XML in tcache's /history, so the failure
analysis can tell a new failure from a recurring one. A new history_name
input turns it on, and only the three nightlies set it.

Not testrun_name, because that input also gates the /import step above, and
nightlies must stay out of it.

TCACHE_URL ends in /results, so the suffix is stripped before appending
/history. Without that, every upload returns 404.

The step then compares the bytes tcache serves back against the bytes sent. A
200 alone is not enough, because Caddy answers an unrouted path with 200 and an
empty body.

This needs the history table migration and a reverse_proxy /history/* line
on the tcache host. If either is missing the step fails and says so.

Tested locally against tcache at master behind a real Caddy, on a database
migrated from the old schema. A real node test's report uploaded and read back
byte-identical, with its failure intact. The if: gate is the one part that
needs a real run.

@OlufemiAdeOlusile
OlufemiAdeOlusile force-pushed the add-nightly-history-upload branch 3 times, most recently from f711980 to ac0c2f2 Compare August 31, 2026 21:37
@OlufemiAdeOlusile
OlufemiAdeOlusile force-pushed the add-nightly-history-upload branch 2 times, most recently from 1ff587b to fb2495a Compare September 1, 2026 01:02
@OlufemiAdeOlusile
OlufemiAdeOlusile marked this pull request as ready for review September 1, 2026 01:59
Add a `history_name` input and a "Report nightly history" step to the
reusable regression workflow. When a nightly's tests do not pass, PUT its
JUnit XML to tcache's `/history` endpoint, so the failure analysis can
tell a new failure from a recurring one. Only the three nightly workflows
set `history_name`, so a manual regression dispatch never writes there.

Not `testrun_name`, because that input is also the only gate on the
`/import` step above, and nightly runs must stay out of it.

`TCACHE_URL` points at the `/results` API, so appending `/history` gave
`/results/history` and every upload returned 404. Drop that suffix first.

A 200 does not mean the report landed. Caddy answers a path it has no
route for with 200 and an empty body, so the step compares the bytes the
tcache serves back against the bytes sent.

Gate on `steps.testing-step.outcome`, as the failure-analysis steps in
this file already do. Job-level `failure()` also fires when a later
non-test step fails.
@OlufemiAdeOlusile
OlufemiAdeOlusile force-pushed the add-nightly-history-upload branch from fb2495a to 118bb78 Compare September 2, 2026 10:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant