Ingest CI test execution stats#4191
Conversation
There was a problem hiding this comment.
Pull request overview
Adds ingestion of CI test execution results from the Flow workflow into an internal analytics endpoint for observability/analysis (DBI-671).
Changes:
- Add a new GitHub Actions step in
flow.ymlto normalize JUnit XML into NDJSON and upload it to an external endpoint. - Introduce a new
.github/scripts/test-results.shscript to transform JUnit XML into per-test NDJSON records enriched with workflow metadata.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 9 comments.
| File | Description |
|---|---|
| .github/workflows/flow.yml | Adds a post-test step that normalizes JUnit XML and uploads NDJSON to an analytics endpoint, then checks uploaded row count. |
| .github/scripts/test-results.sh | New yq/jq-based converter from JUnit XML to NDJSON with workflow metadata fields. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
❌ 2 Tests Failed:
View the top 2 failed test(s) by shortest run time
To view more test analytics, go to the Test Analytics Dashboard |
🔄 Flaky Test DetectedAnalysis: TestCancelTableAdditionRemoveAddRemove failed due to a PostgreSQL SQLSTATE 57P01 (admin_shutdown) error — a transient catalog connection termination by the database server, not a code bug. ✅ Automatically retrying the workflow |
🔄 Flaky Test DetectedAnalysis: Both failures share the same root cause: the PostgreSQL catalog connection was killed mid-test by an administrator command (SQLSTATE 57P01), a transient CI infrastructure event unrelated to the code change. ✅ Automatically retrying the workflow |
🔄 Flaky Test DetectedAnalysis: TestResyncCompleted failed due to PostgreSQL SQLSTATE 57P01 ("terminating connection due to administrator command") — an external connection kill unrelated to the code under test. ✅ Automatically retrying the workflow |
🔄 Flaky Test DetectedAnalysis: TestGenericBQ/Test_Inheritance_Table_With_Dynamic_Setting timed out waiting for STATUS_SNAPSHOT to complete — a known flaky pattern under high CI concurrency, consistent with explicit comments in the test suite about BigQuery flakiness. ✅ Automatically retrying the workflow |
🔄 Flaky Test DetectedAnalysis: The test ✅ Automatically retrying the workflow |
🔄 Flaky Test DetectedAnalysis: The test ✅ Automatically retrying the workflow |
🔄 Flaky Test DetectedAnalysis: E2E test ✅ Automatically retrying the workflow |
🔄 Flaky Test DetectedAnalysis: CI infrastructure failure — Docker port 42002 was already in use on the runner when attempting to bind it for the toxiproxy container, preventing container startup before any tests ran. ✅ Automatically retrying the workflow |
Two improvements following up #4191 1. Include information on the sources versions matrix combination. 2. For PRs, the commit information is now the last commit pushed by the author rather than the resulting commit from the automatic merge from main. --------- Co-authored-by: Ilia Demianenko <ilia.demianenko@clickhouse.com>
This PR adds a flow step to the repository build ingesting test results for internal analysis.
📝 So far, this is implemented as a step within this repository CI flow, it can be easily factored out as an action if we want to follow the same strategy in other repositories.
The step:
test-results.shwhich is just a wrapper for ayqquery.This is done as the last step in the build so failures are not disruptive.
For internal reviewers
You should check the following details related to internal management of this data:
Ready when
What does this PR resolve?
Part of: https://linear.app/clickhouse/issue/DBI-671