Skip to content

Add stop --force persistent resource cleanup#18718

Draft
danegsta wants to merge 16 commits into
mainfrom
danegsta-persistent-resource-cleanup-mode
Draft

Add stop --force persistent resource cleanup#18718
danegsta wants to merge 16 commits into
mainfrom
danegsta-persistent-resource-cleanup-mode

Conversation

@danegsta

@danegsta danegsta commented Jul 9, 2026

Copy link
Copy Markdown
Member

Description

This adds the aspire stop --force flow for cleaning up persistent DCP resources without exposing the behavior through aspire run or aspire start. The command still stops the running AppHost normally first, then relaunches the AppHost internally in cleanup mode when the AppHost SDK supports the new DCP lifecycle mode.

User-facing usage

Users can force cleanup of persistent resources for an AppHost with:

aspire stop --force

If the AppHost uses an Aspire.Hosting SDK older than 13.5.0 or the version cannot be determined, the command still performs the normal stop and warns that persistent resource cleanup was skipped.

Implementation notes

The hosting side now emits DCP resource lifecycle mode values, including persistent and cleanup, and uses DCP 0.25.4 as the minimum orchestration package version. Cleanup mode sets stop=true for container and executable resources so DCP removes persistent resources during the internal cleanup launch.

The CLI side adds a dedicated cleanup launcher used only by aspire stop --force, propagates the cleanup flag through guest AppHosts, and gates cleanup on Aspire.Hosting 13.5.0 or newer while allowing local/prerelease 13.5.0 builds.

Validation

dotnet test --project tests/Aspire.Cli.Tests/Aspire.Cli.Tests.csproj --no-launch-profile -- --filter-class "*.StopCommandTests" --filter-not-trait "quarantined=true" --filter-not-trait "outerloop=true"
dotnet build tests/Aspire.Cli.EndToEnd.Tests/Aspire.Cli.EndToEnd.Tests.csproj --no-restore
ASPIRE_E2E_ARCHIVE=/tmp/aspire-stop-force-e2e.tar.gz dotnet test --project tests/Aspire.Cli.EndToEnd.Tests/Aspire.Cli.EndToEnd.Tests.csproj --no-launch-profile -- --filter-method "*.StopForceCleansUpPersistentContainer" --filter-not-trait "quarantined=true" --filter-not-trait "outerloop=true"
git diff --check

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 review requested due to automatic review settings July 9, 2026 21:51
@github-actions

github-actions Bot commented Jul 9, 2026

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 -- 18718

Or

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

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

Adds aspire stop --force to stop an AppHost and relaunch it in DCP cleanup mode for persistent resources.

Changes:

  • Adds CLI cleanup launch, version gating, warnings, and guest propagation.
  • Adds DCP persistent/cleanup lifecycle modes.
  • Adds unit and end-to-end coverage.

Reviewed changes

Copilot reviewed 34 out of 35 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
tests/Aspire.Hosting.Tests/Dcp/ResourceSnapshotBuilderTests.cs Updates lifecycle snapshot coverage.
tests/Aspire.Hosting.Tests/Dcp/DcpExecutorTests.cs Tests persistent and cleanup modes.
tests/Aspire.Hosting.Tests/Dcp/ConfigureDefaultDcpOptionsTests.cs Tests cleanup configuration binding.
tests/Aspire.Cli.Tests/Utils/CliTestHelper.cs Registers the cleanup launcher.
tests/Aspire.Cli.Tests/Commands/StopCommandTests.cs Tests stop --force behavior.
tests/Aspire.Cli.EndToEnd.Tests/StopForceTests.cs Verifies persistent container removal.
src/Shared/KnownConfigNames.cs Defines the cleanup configuration key.
src/Aspire.Hosting/Dcp/ResourceSnapshotBuilder.cs Reads the new lifecycle mode.
src/Aspire.Hosting/Dcp/Model/ModelCommon.cs Defines lifecycle mode values.
src/Aspire.Hosting/Dcp/Model/Executable.cs Adds executable lifecycle mode.
src/Aspire.Hosting/Dcp/Model/ContainerNetwork.cs Adds network lifecycle mode.
src/Aspire.Hosting/Dcp/Model/Container.cs Adds container lifecycle mode.
src/Aspire.Hosting/Dcp/ExecutableCreator.cs Emits cleanup executable specifications.
src/Aspire.Hosting/Dcp/DcpVersion.cs Raises the minimum DCP version.
src/Aspire.Hosting/Dcp/DcpOptions.cs Configures and validates cleanup mode.
src/Aspire.Hosting/Dcp/ContainerCreator.cs Emits cleanup container specifications.
src/Aspire.Cli/Resources/xlf/StopCommandStrings.zh-Hant.xlf Updates Traditional Chinese localization data.
src/Aspire.Cli/Resources/xlf/StopCommandStrings.zh-Hans.xlf Updates Simplified Chinese localization data.
src/Aspire.Cli/Resources/xlf/StopCommandStrings.tr.xlf Updates Turkish localization data.
src/Aspire.Cli/Resources/xlf/StopCommandStrings.ru.xlf Updates Russian localization data.
src/Aspire.Cli/Resources/xlf/StopCommandStrings.pt-BR.xlf Updates Portuguese localization data.
src/Aspire.Cli/Resources/xlf/StopCommandStrings.pl.xlf Updates Polish localization data.
src/Aspire.Cli/Resources/xlf/StopCommandStrings.ko.xlf Updates Korean localization data.
src/Aspire.Cli/Resources/xlf/StopCommandStrings.ja.xlf Updates Japanese localization data.
src/Aspire.Cli/Resources/xlf/StopCommandStrings.it.xlf Updates Italian localization data.
src/Aspire.Cli/Resources/xlf/StopCommandStrings.fr.xlf Updates French localization data.
src/Aspire.Cli/Resources/xlf/StopCommandStrings.es.xlf Updates Spanish localization data.
src/Aspire.Cli/Resources/xlf/StopCommandStrings.de.xlf Updates German localization data.
src/Aspire.Cli/Resources/xlf/StopCommandStrings.cs.xlf Updates Czech localization data.
src/Aspire.Cli/Resources/StopCommandStrings.resx Adds force-cleanup messages.
src/Aspire.Cli/Resources/StopCommandStrings.Designer.cs Exposes the new resources.
src/Aspire.Cli/Projects/GuestAppHostProject.cs Propagates cleanup mode to guests.
src/Aspire.Cli/Program.cs Registers the cleanup launcher.
src/Aspire.Cli/Commands/StopCommand.cs Implements stop --force.
src/Aspire.Cli/Commands/AppHostCleanupLauncher.cs Launches and coordinates cleanup mode.
Files not reviewed (1)
  • src/Aspire.Cli/Resources/StopCommandStrings.Designer.cs: Generated file

Comment thread src/Aspire.Cli/Commands/AppHostCleanupLauncher.cs Outdated
Comment thread src/Aspire.Cli/Commands/AppHostCleanupLauncher.cs
Comment thread src/Aspire.Cli/Commands/StopCommand.cs Outdated
Comment thread src/Aspire.Cli/Projects/GuestAppHostProject.cs
Comment thread src/Aspire.Cli/Commands/AppHostCleanupLauncher.cs
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 9, 2026 22:11

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 36 out of 37 changed files in this pull request and generated 3 comments.

Files not reviewed (1)
  • src/Aspire.Cli/Resources/StopCommandStrings.Designer.cs: Generated file

Comment thread src/Aspire.Hosting/Dcp/ResourceSnapshotBuilder.cs Outdated
Comment thread src/Aspire.Cli/Commands/StopCommand.cs Outdated
Comment thread tests/Aspire.Cli.Tests/Commands/StopCommandTests.cs Outdated
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 9, 2026 22:31
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

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 37 out of 38 changed files in this pull request and generated 6 comments.

Files not reviewed (1)
  • src/Aspire.Cli/Resources/StopCommandStrings.Designer.cs: Generated file

Comment thread src/Aspire.Cli/Commands/StopCommand.cs Outdated
Comment thread src/Aspire.Cli/Commands/StopCommand.cs Outdated
Comment thread Aspire.slnx
Comment thread src/Aspire.Hosting/Dcp/ContainerCreator.cs
Comment thread src/Aspire.Hosting/Dcp/ContainerCreator.cs
Comment thread src/Aspire.Hosting/Dcp/ExecutableCreator.cs
Copilot AI review requested due to automatic review settings July 9, 2026 22:39

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 37 out of 38 changed files in this pull request and generated 2 comments.

Files not reviewed (1)
  • src/Aspire.Cli/Resources/StopCommandStrings.Designer.cs: Generated file

Comment thread src/Aspire.Cli/Commands/AppHostCleanupLauncher.cs Outdated
Comment thread Aspire.slnx
Treat failures while inspecting the AppHost version as an unknown version so a successful stop --force does not become a failed command before cleanup.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 9, 2026 22:51
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

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 37 out of 38 changed files in this pull request and generated 2 comments.

Files not reviewed (1)
  • src/Aspire.Cli/Resources/StopCommandStrings.Designer.cs: Generated file

Comment thread Aspire.slnx
Comment thread src/Aspire.Hosting/Dcp/ContainerCreator.cs
Copilot AI review requested due to automatic review settings July 9, 2026 22:56

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 37 out of 38 changed files in this pull request and generated 5 comments.

Files not reviewed (1)
  • src/Aspire.Cli/Resources/StopCommandStrings.Designer.cs: Generated file

Comment thread src/Aspire.Cli/Commands/AppHostCleanupLauncher.cs Outdated
Comment thread src/Aspire.Cli/Commands/AppHostCleanupLauncher.cs
Comment thread Aspire.slnx
Comment thread src/Aspire.Cli/Commands/StopCommand.cs
Comment thread src/Aspire.Cli/Commands/StopCommand.cs Outdated
@github-actions

github-actions Bot commented Jul 9, 2026

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.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 9, 2026 23:15
@github-actions

This comment has been minimized.

Preserve socket-first apphost selection for stop --force without an explicit apphost path, then only fall back to project discovery when the stopped connection cannot provide one.

Ensure internal cleanup env vars cannot be overridden by launch profiles by disabling launch profiles for cleanup launches and reapplying the cleanup flags after launch settings are read.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 10, 2026 00:03

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 46 out of 47 changed files in this pull request and generated 2 comments.

Files not reviewed (1)
  • src/Aspire.Cli/Resources/StopCommandStrings.Designer.cs: Generated file

Comment thread src/Aspire.Cli/Commands/AppHostCleanupLauncher.cs Outdated
Comment thread src/Aspire.Cli/Commands/StopCommand.cs
@github-actions

This comment has been minimized.

Replay forwarded AppHost arguments when launching the internal cleanup AppHost so argument-dependent persistent resources are represented during DCP cleanup.

Remove the unbounded dashboard URL lookup from cleanup startup and let non-interactive stop --force fall back to AppHost discovery when no running AppHost is found.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 10, 2026 00:17
@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 50 out of 51 changed files in this pull request and generated 1 comment.

Files not reviewed (1)
  • src/Aspire.Cli/Resources/StopCommandStrings.Designer.cs: Generated file

Comment thread src/Aspire.Hosting/Dcp/DcpExecutor.cs Outdated
Attempt the best-effort DCP server stop even when waited resource cleanup fails, while still propagating the cleanup exception. Add coverage for the fallback stop attempt.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 10, 2026 00:36

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 50 out of 51 changed files in this pull request and generated 3 comments.

Files not reviewed (1)
  • src/Aspire.Cli/Resources/StopCommandStrings.Designer.cs: Generated file

Comment thread src/Aspire.Cli/Projects/DotNetAppHostProject.cs Outdated
Comment on lines +115 to +120
var resourcesCreated = await WaitForAppHostResourcesCreatedAsync(
backchannel,
pendingRun,
startupStartTimestamp,
startupTimeout,
cancellationToken).ConfigureAwait(false);
return CliExitCodes.InvalidCommand;
}

return await _cleanupLauncher.CleanupAsync(project, appHostFile, timeoutSeconds, stopResult.AppHostArguments, cancellationToken).ConfigureAwait(false);
@github-actions

This comment has been minimized.

Treat non-interactive stop --force with only out-of-scope AppHosts the same as no matching running AppHost so local project discovery can still drive cleanup.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 10, 2026 00:51
@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 50 out of 51 changed files in this pull request and generated 3 comments.

Files not reviewed (1)
  • src/Aspire.Cli/Resources/StopCommandStrings.Designer.cs: Generated file

Comment thread src/Aspire.Cli/Projects/DotNetAppHostProject.cs Outdated
return CliExitCodes.InvalidCommand;
}

return await _cleanupLauncher.CleanupAsync(project, appHostFile, timeoutSeconds, stopResult.AppHostArguments, cancellationToken).ConfigureAwait(false);
Comment on lines +43 to +44
NoBuild = false,
NoRestore = false,
Keep cleanup relaunches from disabling AppHost launch profiles, and cover that profile args and environment still flow while cleanup settings are present.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 10, 2026 01:01
@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.

54 / 100 test projects · 5 jobs, from 51 changed files.

Selected test projects (54 / 100)

Aspire.Cli.EndToEnd.Tests, Aspire.Cli.Tests, Aspire.Dashboard.Components.Tests, Aspire.Dashboard.Tests, 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.CodeGeneration.Go.Tests, Aspire.Hosting.CodeGeneration.Java.Tests, Aspire.Hosting.CodeGeneration.Python.Tests, Aspire.Hosting.CodeGeneration.Rust.Tests, Aspire.Hosting.CodeGeneration.TypeScript.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.RemoteHost.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.Managed.Tests, Aspire.Playground.Tests, Aspire.Templates.Tests

Selected jobs (5)

cli-starter, deployment-e2e, extension-e2e, polyglot, typescript-api-compat


How these were chosen — grouped by what changed

⚠️ 38 of the 54 selected test projects come from a single change — src/Aspire.Hosting/Backchannel/AppHostRpcTarget.cs.

🔧 src/Aspire.Hosting/Backchannel/AppHostRpcTarget.cs (changed source)
38 via the project graph

show 38

Aspire.Hosting.Analyzers.Tests (2 hops), Aspire.Hosting.Azure.Kubernetes.Tests (2 hops), Aspire.Hosting.Azure.Kusto.Tests (2 hops), Aspire.Hosting.Azure.Tests, Aspire.Hosting.CodeGeneration.Go.Tests, Aspire.Hosting.CodeGeneration.Java.Tests, Aspire.Hosting.CodeGeneration.Python.Tests, Aspire.Hosting.CodeGeneration.Rust.Tests, Aspire.Hosting.CodeGeneration.TypeScript.Tests, Aspire.Hosting.DevTunnels.Tests (2 hops), Aspire.Hosting.Docker.Tests (2 hops), Aspire.Hosting.DotnetTool.Tests (2 hops), Aspire.Hosting.EntityFrameworkCore.Tests (2 hops), Aspire.Hosting.Foundry.Tests (2 hops), Aspire.Hosting.Garnet.Tests (2 hops), Aspire.Hosting.Go.Tests (2 hops), Aspire.Hosting.JavaScript.Tests (2 hops), Aspire.Hosting.Kafka.Tests (2 hops), Aspire.Hosting.Keycloak.Tests (2 hops), Aspire.Hosting.Kubernetes.Tests (2 hops), Aspire.Hosting.Maui.Tests, Aspire.Hosting.Milvus.Tests (2 hops), Aspire.Hosting.MongoDB.Tests (2 hops), Aspire.Hosting.MySql.Tests (2 hops), Aspire.Hosting.Nats.Tests (2 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.RemoteHost.Tests, Aspire.Hosting.Seq.Tests (2 hops), Aspire.Hosting.SqlServer.Tests (2 hops), Aspire.Hosting.Valkey.Tests (2 hops), Aspire.Hosting.Yarp.Tests (2 hops), Aspire.Playground.Tests

🔧 src/Shared/KnownConfigNames.cs (changed source)
9 via the project graph: Aspire.Dashboard.Components.Tests, Aspire.Dashboard.Tests, Aspire.Hosting.Browsers.Tests, Aspire.Hosting.Containers.Tests, Aspire.Hosting.GitHub.Models.Tests, Aspire.Hosting.OpenAI.Tests, Aspire.Hosting.Testing.Tests, Aspire.Managed.Tests, Aspire.Templates.Tests

🧪 tests/Aspire.Hosting.Tests/Backchannel/AppHostBackchannelTests.cs (changed test)
1 directly: Aspire.Hosting.Tests
3 via the project graph: Aspire.Hosting.Blazor.Tests, Aspire.Hosting.Dotnet.Tests, Aspire.Hosting.Radius.Tests

📦 affected project Aspire.Cli
1 test: Aspire.Cli.EndToEnd.Tests

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

🔧 src/Aspire.Cli/Resources/StopCommandStrings.Designer.cs (changed source)
1 via the project graph: Aspire.Cli.EndToEnd.Tests

🧪 tests/Aspire.Cli.EndToEnd.Tests/StopForceTests.cs (changed test)
1 directly: Aspire.Cli.EndToEnd.Tests

🧪 tests/Aspire.Cli.Tests/Commands/PublishCommandPromptingIntegrationTests.cs (changed test)
1 directly: Aspire.Cli.Tests

🧪 tests/Aspire.Cli.Tests/Commands/RunCommandTests.cs (changed test)
1 directly: Aspire.Cli.Tests

🧪 tests/Aspire.Cli.Tests/Commands/StopCommandTests.cs (changed test)
1 directly: Aspire.Cli.Tests

🧪 tests/Aspire.Cli.Tests/Projects/DotNetAppHostProjectTests.cs (changed test)
1 directly: Aspire.Cli.Tests

🧪 tests/Aspire.Cli.Tests/Projects/GuestAppHostProjectTests.cs (changed test)
1 directly: Aspire.Cli.Tests

🧪 tests/Aspire.Cli.Tests/TestServices/FakeAppHostServerSession.cs (changed test)
1 directly: Aspire.Cli.Tests

🧪 tests/Aspire.Cli.Tests/TestServices/TestAppHostCliBackchannel.cs (changed test)
1 directly: Aspire.Cli.Tests

🧪 tests/Aspire.Cli.Tests/Utils/CliTestHelper.cs (changed test)
1 directly: Aspire.Cli.Tests

🧪 tests/Aspire.Hosting.Tests/Dcp/ConfigureDefaultDcpOptionsTests.cs (changed test)
1 directly: Aspire.Hosting.Tests

🧪 tests/Aspire.Hosting.Tests/Dcp/DcpExecutorTests.cs (changed test)
1 directly: Aspire.Hosting.Tests

🧪 tests/Aspire.Hosting.Tests/Dcp/ResourceSnapshotBuilderTests.cs (changed test)
1 directly: Aspire.Hosting.Tests

🧪 tests/Aspire.Hosting.Tests/Dcp/TestKubernetesService.cs (changed test)
1 directly: Aspire.Hosting.Tests

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

Job reasons

Job Triggered by
cli-starter • affected project Aspire.Cli
• selected test Aspire.Cli.Tests
deployment-e2e affected project Aspire.Cli
extension-e2e src/Aspire.Cli/Backchannel/AppHostCliBackchannel.cs, src/Aspire.Cli/Commands/AppHostCleanupLauncher.cs, src/Aspire.Cli/Commands/RunCommand.cs, src/Aspire.Cli/Commands/StopCommand.cs, src/Aspire.Cli/Program.cs, src/Aspire.Cli/Projects/DotNetAppHostProject.cs, src/Aspire.Cli/Projects/GuestAppHostProject.cs, src/Aspire.Cli/Resources/StopCommandStrings.Designer.cs, src/Aspire.Cli/Resources/StopCommandStrings.resx, src/Aspire.Cli/Resources/xlf/StopCommandStrings.cs.xlf, src/Aspire.Cli/Resources/xlf/StopCommandStrings.de.xlf, src/Aspire.Cli/Resources/xlf/StopCommandStrings.es.xlf, src/Aspire.Cli/Resources/xlf/StopCommandStrings.fr.xlf, src/Aspire.Cli/Resources/xlf/StopCommandStrings.it.xlf, src/Aspire.Cli/Resources/xlf/StopCommandStrings.ja.xlf, src/Aspire.Cli/Resources/xlf/StopCommandStrings.ko.xlf, src/Aspire.Cli/Resources/xlf/StopCommandStrings.pl.xlf, src/Aspire.Cli/Resources/xlf/StopCommandStrings.pt-BR.xlf, src/Aspire.Cli/Resources/xlf/StopCommandStrings.ru.xlf, src/Aspire.Cli/Resources/xlf/StopCommandStrings.tr.xlf, src/Aspire.Cli/Resources/xlf/StopCommandStrings.zh-Hans.xlf, src/Aspire.Cli/Resources/xlf/StopCommandStrings.zh-Hant.xlf, src/Aspire.Hosting/Backchannel/AppHostRpcTarget.cs, src/Aspire.Hosting/Backchannel/AuxiliaryBackchannelRpcTarget.cs, src/Aspire.Hosting/Backchannel/BackchannelDataTypes.cs, src/Aspire.Hosting/Dcp/ContainerCreator.cs, src/Aspire.Hosting/Dcp/DcpExecutor.cs, src/Aspire.Hosting/Dcp/DcpOptions.cs, src/Aspire.Hosting/Dcp/DcpVersion.cs, src/Aspire.Hosting/Dcp/ExecutableCreator.cs, src/Aspire.Hosting/Dcp/Model/Container.cs, src/Aspire.Hosting/Dcp/Model/ContainerNetwork.cs, src/Aspire.Hosting/Dcp/Model/Executable.cs, src/Aspire.Hosting/Dcp/Model/ModelCommon.cs, src/Aspire.Hosting/Dcp/ResourceSnapshotBuilder.cs, tests/Aspire.Cli.EndToEnd.Tests/StopForceTests.cs, tests/Aspire.Cli.Tests/Commands/PublishCommandPromptingIntegrationTests.cs, tests/Aspire.Cli.Tests/Commands/RunCommandTests.cs, tests/Aspire.Cli.Tests/Commands/StopCommandTests.cs, tests/Aspire.Cli.Tests/Projects/DotNetAppHostProjectTests.cs, tests/Aspire.Cli.Tests/Projects/GuestAppHostProjectTests.cs, tests/Aspire.Cli.Tests/TestServices/FakeAppHostServerSession.cs, tests/Aspire.Cli.Tests/TestServices/TestAppHostCliBackchannel.cs, tests/Aspire.Cli.Tests/Utils/CliTestHelper.cs
• affected project Aspire.Cli
polyglot affected project Aspire.Cli
typescript-api-compat affected project Aspire.Cli

Selection computed for commit 5f9ed8c.

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 50 out of 51 changed files in this pull request and generated 3 comments.

Files not reviewed (1)
  • src/Aspire.Cli/Resources/StopCommandStrings.Designer.cs: Generated file

Comment on lines +550 to +553
ApplyResourceCleanupEnvironmentOverrides(env, context.EnvironmentVariables);
if (directRun is not null)
{
ApplyResourceCleanupEnvironmentOverrides(directRun.Environment, context.EnvironmentVariables);
Comment on lines +256 to +260
if (treatNotRunningAsSuccess)
{
InteractionService.DisplayMessage(KnownEmojis.Information, SharedCommandStrings.AppHostNotRunning);
return new StopAppHostResult(CliExitCodes.Success, null, []);
}
Comment on lines +31 to +35
var environmentVariables = new Dictionary<string, string>
{
[KnownConfigNames.DcpResourceCleanupMode] = "true",
[KnownConfigNames.DcpWaitForResourceCleanup] = "true"
};
@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.

@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.

@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.

2 participants