Skip to content

Bound Aspire CLI process termination wait - #19367

Open
Karol Zadora-Przylecki (karolz-ms) wants to merge 6 commits into
mainfrom
dev/karolz/better-handle-process-termination-timeout
Open

Bound Aspire CLI process termination wait#19367
Karol Zadora-Przylecki (karolz-ms) wants to merge 6 commits into
mainfrom
dev/karolz/better-handle-process-termination-timeout

Conversation

@karolz-ms

Copy link
Copy Markdown
Contributor

Description

Aspire CLI bundle setup commands that exceed their timeout should not be able to leave MSBuild waiting indefinitely while process termination completes asynchronously.

This change adds a fixed five-second post-termination wait. If the process still has not exited, the task reports the cleanup timeout through FailureMessage while preserving the existing DNX fallback flow. The full-framework timeout regression now also verifies the emitted failure message.

Validation:

  • Built Aspire.Hosting.Tasks for net8.0 and net472.
  • Passed BuildFallsBackToDnxWhenPathAspireCliSetupTimesOut.
  • Passed RunAspireCliCommandKillsCommandShimProcessTreeOnTimeoutInFullFrameworkMsBuild.

Fixes # (issue)

Checklist

  • Is this feature complete?
    • Yes. Ready to ship.
    • No. Follow-up changes expected.
  • Are you including unit tests for the changes and scenario tests if relevant?
    • Yes
    • No
  • Did you add public API?
    • Yes
      • If yes, did you have an API Review for it?
        • Yes
        • No
      • Did you add <remarks /> and <code /> elements on your triple slash comments?
        • Yes
        • No
    • No
  • Does the change make any security assumptions or guarantees?
    • Yes
      • If yes, have you done a threat model and had a security review?
        • Yes
        • No
    • No

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings August 14, 2026 00:06
@github-actions

Copy link
Copy Markdown
Contributor

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 19367

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 19367"

@github-actions

This comment has been minimized.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Bounds Aspire CLI process cleanup after command timeouts to prevent indefinite MSBuild hangs.

Changes:

  • Adds a five-second post-termination wait and cleanup failure message.
  • Extends the full-framework timeout assertion.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
src/Aspire.Hosting.Tasks/RunAspireCliCommand.cs Bounds process termination waits.
tests/Aspire.Hosting.Sdk.Tests/AppHostSdkTargetsTests.cs Verifies the timeout failure message.

Comment thread src/Aspire.Hosting.Tasks/RunAspireCliCommand.cs Outdated
Co-authored-by: karolz-ms <15271049+karolz-ms@users.noreply.github.com>
Copilot AI review requested due to automatic review settings August 14, 2026 00:28

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

Comment thread tests/Aspire.Hosting.Sdk.Tests/Aspire.Hosting.Sdk.Tests.csproj Outdated
Comment thread src/Aspire.Hosting.Tasks/RunAspireCliCommand.cs Outdated
@github-actions

This comment has been minimized.

Co-authored-by: karolz-ms <15271049+karolz-ms@users.noreply.github.com>
Copilot AI review requested due to automatic review settings August 14, 2026 00:54

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.

Suppressed comments (1)

src/Aspire.Hosting.Tasks/RunAspireCliCommand.cs:110

  • This bounds only the root process wait. If the root exits while a descendant still owns the redirected stdout/stderr handles, WaitForExit returns true and the code immediately performs unbounded waits on both ReadToEndAsync tasks below. Kill(entireProcessTree: true) does not make the root's exit status represent descendant completion, so this can still leave MSBuild waiting indefinitely. Please include stream draining in the cleanup deadline (or stop draining/close the streams when that deadline expires).
            if (!WaitForExit(process, ProcessTerminationTimeoutMilliseconds))

@github-actions

This comment has been minimized.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 851efffb-92bd-49d5-b3de-0d5a91446df8
Copilot AI review requested due to automatic review settings August 14, 2026 20:04
@github-actions

This comment has been minimized.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated no new comments.

@github-actions

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

@karolz-ms

Copy link
Copy Markdown
Contributor Author

PR Testing Report

PR Information

  • PR: #19367 - Bound Aspire CLI process termination wait
  • Head commit: 72ec5a9c54a4e131b70c4722fc8b8b84c3a4f60f
  • Base commit: f65a2010fae4b0d9045cef07d84f093dc1f46733
  • Tested at: 2026-08-17T16:55:10Z
  • Environment: macOS arm64, local temporary workspaces, repository .NET SDK 10.0.201

Artifact Version Verification

  • Expected commit: 72ec5a9c54a4e131b70c4722fc8b8b84c3a4f60f
  • Installed dogfood CLI: 13.6.0-pr.19367.g72ec5a9c
  • Status: PASS - the installed CLI contains the PR head commit.

Changes Analyzed

Files Changed

  • src/Aspire.Hosting.Tasks/Aspire.Hosting.Tasks.csproj
  • src/Aspire.Hosting.Tasks/RunAspireCliCommand.cs
  • tests/Aspire.Hosting.Sdk.Tests/AppHostSdkTargetsTests.cs
  • tests/Aspire.Hosting.Sdk.Tests/Aspire.Hosting.Sdk.Tests.csproj
  • tests/Aspire.Hosting.Tests/MSBuildTests.cs

Change Categories

  • Hosting task and MSBuild behavior
  • SDK and hosting regression tests
  • Dashboard
  • Templates
  • Client components
  • VS Code extension
  • CI infrastructure

Test Scenarios Executed

Scenario 1: Dogfood artifact and fresh AppHost smoke test

Objective: Verify the tested artifact matches the PR and can create, start, inspect, and stop a fresh AppHost.

Coverage type: Happy path

Status: PASS

Steps and results:

  1. Installed PR Bound Aspire CLI process termination wait #19367 with the official dogfood script into an isolated directory.
  2. Verified aspire --version reports 13.6.0-pr.19367.g72ec5a9c.
  3. Created a fresh C# aspire-empty project from the PR hive.
  4. Started the single-file AppHost with aspire start --isolated.
  5. Used aspire describe --include-hidden --format Json.
  6. Confirmed the Aspire dashboard resource was Running and Healthy.
  7. Stopped the AppHost successfully.

Evidence:

  • version.txt
  • scenario-empty-smoke/new.log
  • scenario-empty-smoke/start.log
  • scenario-empty-smoke/describe.json
  • scenario-empty-smoke/stop.log

Scenario 2: Multi-target task build

Objective: Verify the changed task compiles for both affected target frameworks.

Coverage type: Build validation

Status: PASS

Results:

  • Aspire.Hosting.Tasks net8.0: build succeeded with 0 warnings and 0 errors.
  • Aspire.Hosting.Tasks net472: build succeeded with 0 warnings and 0 errors.

Evidence:

  • tasks-net8-build.log
  • tasks-net472-build.log
  • build-and-focused-status.txt

Scenario 3: Bounded timeout cleanup and normal command paths

Objective: Verify timeout cleanup cannot block on process exit or inherited output pipes, while successful setup paths still work.

Coverage type: Happy path and unhappy path

Status: PASS - 4 of 4 focused tests passed.

Tests:

  • RunAspireCliCommandReportsWhenProcessDoesNotExitAfterTermination
  • RunAspireCliCommandDoesNotWaitForOutputAfterTimedOutProcessExits
  • ResolveAspireCliBundlePathsUsesDnxBundleWhenDnxModeIsSelected
  • ResolveAspireCliBundlePathsUsesSelectedAspireCliWhenLaterPathCandidateHasBundleWithWarningsAsErrors

Expected unhappy-path outcomes confirmed:

  • A process that still reports running after termination returns a useful FailureMessage.
  • Redirected output readers that never reach EOF do not keep the MSBuild task blocked.
  • Normal DNX and selected-CLI setup paths continue to complete.

Evidence:

  • focused-task-tests.log
  • build-and-focused-status.txt

Scenario 4: Real setup timeout and ASPIRE009 propagation

Objective: Verify a real timed-out CLI bundle setup returns and emits the expected diagnostic rather than hanging.

Coverage type: Unhappy path

Status: PASS

Test: CliBundleSetupTimeoutReportsAspire009

Result: 1 of 1 test passed. The build reported ASPIRE009 and included the command timeout failure.

Evidence:

  • hosting-timeout-tests.log
  • targeted-test-status.txt

Scenario 5: Hanging CLI setup followed by DNX fallback

Objective: Verify fallback can run after terminating a hanging PATH-resolved Aspire CLI.

Coverage type: Recovery path and timing boundary

Status: PASS WITH NON-BLOCKING TIMING OBSERVATION

BuildFallsBackToDnxWhenPathAspireCliSetupTimesOut passed 4 of 5 focused reruns at the PR head. Its intermittent failure occurs when the fake DNX shell also exceeds the test's shared 100 ms setup timeout.

The same test failed 5 of 5 times at the PR base commit with the same fake-DNX timeout. This demonstrates that the intermittent result is not introduced by PR #19367; the PR materially improves completion on this macOS host.

Evidence:

  • fallback-rerun-status.txt
  • fallback-rerun-1.log through fallback-rerun-5.log
  • baseline-fallback-status.txt
  • baseline-fallback-1.log through baseline-fallback-5.log

Scenario 6: Full-framework Windows process-tree cleanup

Objective: Cover the net472 process-tree termination path that cannot execute on macOS.

Coverage type: Platform-specific CI validation

Status: PASS IN CI / SKIPPED LOCALLY AS DESIGNED

The local test RunAspireCliCommandKillsCommandShimProcessTreeOnTimeoutInFullFrameworkMsBuild skipped because it requires full-framework MSBuild on Windows. The PR's complete Hosting.Sdk jobs passed on both Windows and Ubuntu:

All PR checks reported by GitHub were passing: 362 passed and 2 skipped.

Additional Observation

Two extra aspire-starter probes created successfully but failed to build locally because Razor component files were not included as RazorComponent items, producing CS0234 for <ProjectName>.Web.Components. The PR does not touch templates, Razor, or the web project SDK, and the fresh aspire-empty artifact smoke test passed. This result was therefore not attributed to PR #19367.

Evidence:

  • scenario-artifact-smoke/build.log
  • scenario-starter-smoke/build.log

Summary

Scenario Status Notes
Artifact provenance and AppHost smoke PASS Exact PR artifact; dashboard healthy
net8.0 and net472 task builds PASS 0 warnings, 0 errors
Bounded wait, blocked output, and normal paths PASS 4/4 focused tests
ASPIRE009 timeout propagation PASS 1/1 focused test
Hanging CLI to DNX fallback PASS WITH NOTE Head 4/5; base 0/5 due existing 100 ms timing sensitivity
Full-framework Windows cleanup PASS IN CI Local platform skip; Windows Hosting.Sdk CI passed

Overall Result

PR VERIFIED

The changed timeout behavior is bounded and reports useful failures, normal setup paths remain functional, both task target frameworks build, and the PR artifact runs a fresh AppHost successfully. No regression attributable to PR #19367 was found.

Recommendation

Consider increasing or separating the test-only 100 ms timeout in BuildFallsBackToDnxWhenPathAspireCliSetupTimesOut; it can also expire the fast fallback command under local contention, including on the PR base.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code review of the bounded process-termination change. 6 findings: 2 correctness/behavior regressions in RunAspireCliCommand, 1 test-coverage gap on the new bound, 1 environment-dependent test asset, 1 test resource leak, and 1 diagnosability regression.

Comment thread src/Aspire.Hosting.Tasks/RunAspireCliCommand.cs
Comment thread src/Aspire.Hosting.Tasks/RunAspireCliCommand.cs
Comment thread src/Aspire.Hosting.Tasks/RunAspireCliCommand.cs Outdated
Comment thread tests/Aspire.Hosting.Sdk.Tests/AppHostSdkTargetsTests.cs Outdated
Comment thread tests/Aspire.Hosting.Sdk.Tests/Aspire.Hosting.Sdk.Tests.csproj Outdated
Comment thread tests/Aspire.Hosting.Sdk.Tests/AppHostSdkTargetsTests.cs Outdated
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 6bddb089-22c9-491a-99d4-a566f5c3f3c4
Copilot AI review requested due to automatic review settings August 17, 2026 21:19

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.

@github-actions

This comment has been minimized.

@karolz-ms

Copy link
Copy Markdown
Contributor Author

PR Testing Report

PR Information

  • PR Number: Bound Aspire CLI process termination wait #19367
  • Title: Bound Aspire CLI process termination wait
  • Head Commit: 75d2fed3b00f0d85098fbecb6c3537d86a0f50e8
  • Tested At: 2026-08-17T21:50:26Z
  • Execution Target: Local macOS arm64 temp workspace

Artifact Version Verification

  • Expected Commit: 75d2fed3b00f0d85098fbecb6c3537d86a0f50e8
  • Installed Version: 13.6.0-pr.19367.g75d2fed3
  • Source Checkout: Detached, clean checkout at the expected commit
  • Status: PASS - verified

Changes Analyzed

Files Changed

  • src/Aspire.Hosting.Tasks/RunAspireCliCommand.cs
  • tests/Aspire.Hosting.Sdk.Tests/AppHostSdkTargetsTests.cs
  • tests/Aspire.Hosting.Sdk.Tests/Aspire.Hosting.Sdk.Tests.csproj
  • tests/Aspire.Hosting.Tests/MSBuildTests.cs

Change Categories

  • Hosting/MSBuild task changes
  • Test changes
  • CLI command changes
  • Dashboard changes
  • Template changes
  • Client/component changes
  • VS Code extension changes
  • CI infrastructure changes

Test Scenarios Executed

Scenario 1: Exact PR artifact and normal AppHost smoke

Objective: Verify the dogfood artifact matches the PR head and can create, build, start, inspect, and stop a fresh AppHost.

Coverage Type: Happy path

Status: PASS

Steps:

  1. Installed the PR dogfood CLI and packages into an isolated temp directory.
  2. Verified the CLI version contains the PR head short SHA.
  3. Created a fresh aspire-empty C# AppHost from the PR hive with all prompts disabled.
  4. Started the generated AppHost in isolated mode.
  5. Ran aspire describe and received an empty resource list, as expected for the empty template.
  6. Stopped the AppHost successfully.

Evidence:

  • version.txt
  • install.log
  • scenario-artifact-smoke/new.log
  • scenario-artifact-smoke/start-internal-feed.log
  • scenario-artifact-smoke/describe.json
  • scenario-artifact-smoke/stop.log

Observations:

  • The host could not reach https://api.nuget.org/v3/index.json (curl error 35). The generated temp app was pointed at the repository-approved dotnet-public mirror for restore; no PR source was changed.
  • The AppHost started successfully with PID 88386, returned { "resources": [] }, and stopped cleanly.

Scenario 2: Hanging CLI setup falls back to DNX

Objective: Confirm a hanging path-based Aspire CLI setup is terminated and the build recovers through the DNX fallback without waiting indefinitely.

Coverage Type: Unhappy path / recovery

Status: PASS with local baseline sensitivity noted

Steps:

  1. Ran BuildFallsBackToDnxWhenPathAspireCliSetupTimesOut from the exact PR source.
  2. Repeated the test in isolation after the first failure.
  3. Ran the identical test at the PR branch point, f65a2010fae4b0d9045cef07d84f093dc1f46733.
  4. Because the PR and base both timed out the fast DNX shell at the test's 100 ms threshold on this macOS host, temporarily changed only the test harness timeout to 1000 ms.
  5. Reran against the exact PR production source, then restored the test file and verified the source checkout was clean.
  6. Corroborated the exact 100 ms test through the PR's successful Ubuntu and Windows Hosting SDK CI jobs.

Evidence:

Observations:

  • Exact 100 ms local result at PR head: failed because both the intentionally hanging CLI and the fast DNX stub exceeded 100 ms.
  • Exact 100 ms local result at the pre-PR base: failed in the same way, so this is not introduced by the PR.
  • The 1000 ms local harness passed in 3.865 seconds and preserved the intended timeout-to-DNX recovery.
  • Ubuntu CI passed the complete Aspire.Hosting.Sdk.Tests project: 63 total, 59 succeeded, 0 failed, 4 platform skips.
  • Windows CI passed the complete project: 63 total, 61 succeeded, 0 failed, 2 Unix-only skips.

Expected Unhappy-Path Outcome: The hanging CLI setup is terminated, DNX creates the bundle, and the build succeeds.


Scenario 3: Bounded failure reports ASPIRE009

Objective: Confirm the no-usable-bundle path returns instead of hanging and reports a clear timeout diagnostic.

Coverage Type: Unhappy path / diagnostic

Status: PASS

Steps:

  1. Ran CliBundleSetupTimeoutReportsAspire009 directly from the exact PR source.
  2. Verified the targeted test completed successfully.

Evidence:

  • timeout-diagnostic-test.log

Observations:

  • 1 test passed, 0 failed.
  • The exact regression validates ASPIRE009, the unusable bundle explanation, and timeout text.

Expected Unhappy-Path Outcome: MSBuild returns a bounded failure containing ASPIRE009 and timeout details.


Scenario 4: Full-framework process-tree termination

Objective: Confirm a timed-out Windows command shim and child process tree are terminated, a failure message is emitted, and inherited pipe handles do not leave MSBuild blocked.

Coverage Type: Boundary / platform-specific unhappy path

Status: PASS - Windows CI-backed

Steps:

  1. Ran the exact test filter locally to document the expected macOS platform skip.
  2. Inspected the Windows Hosting SDK CI job for the same PR head.
  3. Verified the whole test project passed and that the only two skipped tests were Unix-specific; RunAspireCliCommandKillsCommandShimProcessTreeOnTimeoutInFullFrameworkMsBuild was not skipped.

Evidence:

Observations:

  • Local macOS execution skipped the test because full-framework MSBuild is Windows-only.
  • Windows CI ran the applicable test suite with 61 successes, 0 failures, and only 2 unrelated Unix-only skips.

Expected Unhappy-Path Outcome: The process tree exits, the timeout failure message is populated, and MSBuild completes.

Supporting Build Validation

  • Aspire.Hosting.Tasks net8.0: PASS, 0 warnings, 0 errors.
  • Aspire.Hosting.Tasks net472: PASS, 0 warnings, 0 errors.
  • Evidence: hosting-tasks-build.log.

Summary

Scenario Status Notes
Exact PR artifact and normal AppHost smoke PASS Fresh AppHost started, described, and stopped
Hanging CLI setup falls back to DNX PASS Exact CI coverage plus stable local harness; 100 ms macOS issue reproduces at base
Bounded failure reports ASPIRE009 PASS Exact targeted test passed locally
Full-framework process-tree termination PASS Windows CI-backed; target test was not skipped
net8.0 and net472 task builds PASS 0 warnings and 0 errors

Overall Result

PASS - PR VERIFIED

No PR-specific failure was found. The full PR CI run was still in progress when this report was written, but both relevant Hosting SDK jobs had completed successfully.

Recommendations

  • No blocking changes are recommended for this PR.
  • The existing 100 ms fallback test threshold is sensitive on this macOS host and fails identically at the PR base; treat that as a separate test-reliability observation rather than a regression in this PR.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 288bc591-90b0-439d-85c2-562d720b0720
Copilot AI review requested due to automatic review settings August 17, 2026 22:47

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.

@github-actions

Copy link
Copy Markdown
Contributor

Tests selector (audit mode)

The full test matrix and all jobs still run in audit mode. The tests and jobs below are what selective CI would run under enforcement.

44 / 101 test projects · 2 jobs, from 4 changed files.

Selected test projects (44 / 101)

Aspire.EndToEnd.Tests, Aspire.Hosting.Analyzers.Tests, Aspire.Hosting.Azure.Kubernetes.Tests, Aspire.Hosting.Azure.Kusto.Tests, Aspire.Hosting.Azure.Tests, Aspire.Hosting.Blazor.Tests, Aspire.Hosting.Browsers.Tests, Aspire.Hosting.Containers.Tests, Aspire.Hosting.DevTunnels.Tests, Aspire.Hosting.Docker.Tests, Aspire.Hosting.Dotnet.Tests, Aspire.Hosting.DotnetTool.Tests, Aspire.Hosting.EntityFrameworkCore.Tests, Aspire.Hosting.Foundry.Tests, Aspire.Hosting.Garnet.Tests, Aspire.Hosting.GitHub.Models.Tests, Aspire.Hosting.Go.Tests, Aspire.Hosting.JavaScript.Tests, Aspire.Hosting.Kafka.Tests, Aspire.Hosting.Keycloak.Tests, Aspire.Hosting.Kubernetes.Tests, Aspire.Hosting.Maui.Tests, Aspire.Hosting.Milvus.Tests, Aspire.Hosting.MongoDB.Tests, Aspire.Hosting.MySql.Tests, Aspire.Hosting.Nats.Tests, Aspire.Hosting.OpenAI.Tests, Aspire.Hosting.Oracle.Tests, Aspire.Hosting.Orleans.Tests, Aspire.Hosting.PostgreSQL.Tests, Aspire.Hosting.Python.Tests, Aspire.Hosting.Qdrant.Tests, Aspire.Hosting.RabbitMQ.Tests, Aspire.Hosting.Radius.Tests, Aspire.Hosting.Redis.Tests, Aspire.Hosting.Rust.Tests, Aspire.Hosting.Sdk.Tests, Aspire.Hosting.Seq.Tests, Aspire.Hosting.SqlServer.Tests, Aspire.Hosting.Testing.Tests, Aspire.Hosting.Tests, Aspire.Hosting.Valkey.Tests, Aspire.Hosting.Yarp.Tests, Aspire.Playground.Tests

Selected jobs (2)

extension-e2e, typescript-api-compat


How these were chosen — grouped by what changed

⚠️ 36 of the 44 selected test projects come from a single change — src/Aspire.Hosting.Tasks/RunAspireCliCommand.cs.

🔧 src/Aspire.Hosting.Tasks/RunAspireCliCommand.cs (changed source)
36 via the project graph

show 36

Aspire.Hosting.Analyzers.Tests (2 hops), Aspire.Hosting.Azure.Kusto.Tests (2 hops), Aspire.Hosting.Browsers.Tests (2 hops), Aspire.Hosting.Containers.Tests (3 hops), Aspire.Hosting.DevTunnels.Tests (3 hops), Aspire.Hosting.Docker.Tests (2 hops), Aspire.Hosting.DotnetTool.Tests (2 hops), Aspire.Hosting.EntityFrameworkCore.Tests (3 hops), Aspire.Hosting.Foundry.Tests (2 hops), Aspire.Hosting.Garnet.Tests (2 hops), Aspire.Hosting.GitHub.Models.Tests (3 hops), Aspire.Hosting.Go.Tests (2 hops), Aspire.Hosting.JavaScript.Tests (2 hops), Aspire.Hosting.Kafka.Tests (3 hops), Aspire.Hosting.Keycloak.Tests (3 hops), Aspire.Hosting.Kubernetes.Tests (2 hops), Aspire.Hosting.Maui.Tests (3 hops), Aspire.Hosting.Milvus.Tests (2 hops), Aspire.Hosting.MongoDB.Tests (3 hops), Aspire.Hosting.MySql.Tests (2 hops), Aspire.Hosting.Nats.Tests (2 hops), Aspire.Hosting.OpenAI.Tests (3 hops), Aspire.Hosting.Oracle.Tests (2 hops), Aspire.Hosting.Orleans.Tests (2 hops), Aspire.Hosting.PostgreSQL.Tests (2 hops), Aspire.Hosting.Python.Tests (2 hops), Aspire.Hosting.Qdrant.Tests (2 hops), Aspire.Hosting.RabbitMQ.Tests (2 hops), Aspire.Hosting.Redis.Tests (2 hops), Aspire.Hosting.Rust.Tests (2 hops), Aspire.Hosting.Seq.Tests (2 hops), Aspire.Hosting.SqlServer.Tests (3 hops), Aspire.Hosting.Testing.Tests (2 hops), Aspire.Hosting.Valkey.Tests (3 hops), Aspire.Hosting.Yarp.Tests (2 hops), Aspire.Playground.Tests (3 hops)

🧪 tests/Aspire.Hosting.Tests/MSBuildTests.cs (changed test)
1 directly: Aspire.Hosting.Tests
5 via the project graph: Aspire.Hosting.Azure.Kubernetes.Tests (2 hops), Aspire.Hosting.Azure.Tests, Aspire.Hosting.Blazor.Tests, Aspire.Hosting.Dotnet.Tests, Aspire.Hosting.Radius.Tests

📦 affected project Aspire.Hosting.AppHost
1 test: Aspire.EndToEnd.Tests

🧪 tests/Aspire.Hosting.Sdk.Tests/AppHostSdkTargetsTests.cs (changed test)
1 directly: Aspire.Hosting.Sdk.Tests

🧪 tests/Aspire.Hosting.Sdk.Tests/Aspire.Hosting.Sdk.Tests.csproj (changed test)
1 directly: Aspire.Hosting.Sdk.Tests

Job reasons

Job Triggered by
extension-e2e src/Aspire.Hosting.Tasks/RunAspireCliCommand.cs
• affected project Aspire.Hosting.Tasks
typescript-api-compat affected project Aspire.Hosting.Tasks

Selection computed for commit 634dc76.

@github-actions

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants