Skip to content

Make the Aspire devcontainer polyglot and add lifecycle CI - #10

Merged
Mitch Denny (mitchdenny) merged 3 commits into
mainfrom
davidfowl-polyglot-devcontainer
Sep 7, 2026
Merged

Mitch Denny (mitchdenny) merged 3 commits into
mainfrom
davidfowl-polyglot-devcontainer

Conversation

@davidfowl

@davidfowl David Fowler (davidfowl) commented Sep 7, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Use an Ubuntu 24.04 base with Node.js LTS, Python/uv, and .NET 10 installed as peer features, with editor support for each ecosystem.
  • Use aspire certs trust --non-interactive and SSL_CERT_DIR for trusted HTTPS from container terminals.
  • Replace Visual Studio-focused ignore rules and update Aspire documentation and local test instructions.
  • Add a lifecycle CI matrix that runs each scenario on fresh startup and after stopping/reopening the container:
Scenario Coverage
Python and React TypeScript AppHost, FastAPI, React, Redis, and .NET console compilation
C# and Blazor C# AppHost, ASP.NET Core API, Blazor server-rendered API data, and Redis
TypeScript without .NET SDK TypeScript AppHost, Express, and React; no standalone dotnet on PATH before or after execution
  • Check certificate trust before AppHost startup; validate Docker-in-Docker, health, app endpoints, and dashboard/login-page HTTPS without disabling certificate verification.
  • Seed a non-expiring Redis value for deterministic cache-hit checks instead of relying on the sample's five-second TTL.
  • Upload startup/test output, container logs, and AppHost/resource diagnostics on failures.

Validation

  • All three hosted CI lanes passed on commit ac444a6, including fresh and restarted containers. Longest lane: 4m2s.
  • Exercised all three scenarios locally, including the SDK-free restart path.
  • Confirmed missing certificate trust fails before app startup, and a forced HTTPS failure preserves resource/AppHost diagnostics before cleanup.
  • Confirmed hosted failure artifacts upload correctly; fixed the generated configuration filename issue found by the first expanded run.

The SDK-free case is a test-only derived configuration, not a separate editor preset. Aspire still manages bundled .NET implementation components. This PR remains on Aspire feature :2 pending the separate feature :3 release. VS Code extension installation, debugging, browser rendering, and IDE port forwarding are not covered.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Add C# and SDK-free TypeScript lifecycle lanes, deterministic Redis assertions, and failure diagnostic artifacts.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

@mitchdenny Mitch Denny (mitchdenny) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Reviewed the devcontainer configuration, lifecycle CI, and documentation changes. No blocking issues found.

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.

2 participants