Improve diagnostics for TypeScript AppHost test failures - #1607
Conversation
On an aspire wait timeout, dump aspire describe/logs output as GitHub Actions log groups before rethrowing the original CLI error, and fix the CI artifact upload step to collect the Aspire CLI's actual log directory instead of an incorrect ~/.aspire/logs assumption. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/CommunityToolkit/Aspire/main/eng/scripts/dogfood-pr.sh | bash -s -- 1607Or
iex "& { $(irm https://raw.githubusercontent.com/CommunityToolkit/Aspire/main/eng/scripts/dogfood-pr.ps1) } 1607" |
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
No unresolved blocking issues were identified.
Review effort: Lite
Findings: None
What changed in this PR
Improves CI diagnostics for TypeScript AppHost test failures without changing wait behavior or timeouts.
Changes:
- Captures Aspire resource state and logs when
aspire waitfails. - Locates and uploads Aspire CLI logs from the installed directory.
| File | Summary |
|---|---|
eng/testing/validate-typescript-apphost.ps1 |
Adds grouped diagnostics on wait failures. |
.github/workflows/tests.yaml |
Resolves and uploads Aspire CLI logs. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
I find it funny that Ollama tests are ones that failed to hold up this PR merge 🤣 With this change, where do we see the improvements in the diagnostic output |
|
Before: https://github.com/CommunityToolkit/Aspire/actions/runs/35898296476/job/107307719296 Upload TypeScript app host logs if failed now works The output of |



Why
TypeScript AppHost tests (Ollama, Meilisearch, Floci, Minio, etc.) have been a major source of CI noise on
main— they account for roughly half of allmainfailures over the past two weeks, usually as anaspire waittimeout or a hang/exit-7. When they fail, the CI output gives almost no signal: justCommand failed with exit code 17: aspire wait ollama --status healthy ..., with no resource state, no health-check failure reason, and no container logs. The CLI's own log files aren't even collected as artifacts.This PR is diagnostics-only: it makes these failures debuggable from the CI run itself instead of requiring a live re-run, without changing wait timeouts or semantics.
Changes
.github/workflows/tests.yaml: resolve the Aspire CLI's actual log directory (next to theaspireexecutable, e.g. under the GitHub Actions tool cache) instead of assuming~/.aspire/logs, which the existing "Upload TypeScript app host logs if failed" step never actually matched in CI.eng/testing/validate-typescript-apphost.ps1: on anaspire waitfailure, dumpaspire describeandaspire logs(per waited-on resource, plus all resources) as GitHub Actions log groups before the original error propagates. The CLI's own error message is rethrown unmodified.Explicitly out of scope
Per prior discussion, this PR does not change
WaitTimeoutSeconds/wait status for any integration, and does not touchOllamaModelHealthCheck(a separate fix for the underlying 404-during-model-pull race is being handled elsewhere).Co-authored-by: Copilot App 223556219+Copilot@users.noreply.github.com