Skip to content

Conversation

@eerhardt
Copy link
Member

This is combining all the changes from #12265 and #12293. I'm opening this PR to get the dogfood installer.

Copilot AI and others added 9 commits October 22, 2025 23:37
- Rename WellKnownPipelineSteps to WellKnownPipelineTags (keep old class for backward compatibility)
- Add Tags property to PipelineStep
- Create PipelinePassAnnotation and PipelinePassContext for second-pass callbacks
- Implement step-to-resource mapping during step collection
- Add AddSecondPassCallback API to IDistributedApplicationPipeline
- Add extension methods for registering second-pass callbacks on resources
- Add helper methods to find steps by tag, resource, or both

Co-authored-by: captainsafia <[email protected]>
- Test Tags property on PipelineStep
- Test second-pass callback execution and step dependency modification
- Test finding steps by tag, resource, and tag+resource combination
- Test WithPipelinePassCallback extension methods (sync and async)
- Test resource capture in second-pass callbacks
- Test complex dependency relationships using tags
- Test WellKnownPipelineTags constants and backward compatibility
- Ensure second-pass callbacks execute even when no steps exist

Co-authored-by: captainsafia <[email protected]>
- Rename WellKnownPipelineSteps to WellKnownPipelineTags (removed obsolete class)
- Rename PipelinePassAnnotation to PipelineConfigurationAnnotation
- Rename PipelinePassContext to PipelineConfigurationContext
- Rename AddSecondPassCallback to AddPipelineConfiguration
- Rename WithPipelinePassCallback to WithPipelineConfiguration
- Remove Resource property from context, add ApplicationModel property
- Update all tests to use new API
- Remove CS0618 pragma warnings (no longer needed)

Co-authored-by: captainsafia <[email protected]>
…AzureEnvironment aware of Resources that have their own build steps.
This allows a resource that contains static files (for example a Javascript frontend) to embed its static files into another app server - for example a fastapi python app backend.

Key changes:

* Add StaticDockerFilesAnnotation which goes on the resource that can produce static files. A resource with this annotation builds a docker image, but the image doesn't get pushed to a registry.
* Add StaticDockerFileDestinationAnnotation which goes on the resource that receives the static files. Resources that support this COPY the static files from the source resource into their own docker image.
* AzureEnvironmentResource recognizes resources that have their own "build compute" step, and delegate to those steps for building their images.
* All compute environment resources respect the new StaticDockerFilesAnnotation to mean that this resource shouldn't be considered a compute resource.

Contributes to dotnet#12162
@github-actions
Copy link
Contributor

github-actions bot commented Oct 23, 2025

🚀 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/dotnet/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 12311

Or

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

- Move IResourceWithStaticDockerFiles to ViteApp
- Add the build step tag on python
@eerhardt eerhardt closed this Oct 23, 2025
@dotnet-policy-service dotnet-policy-service bot added this to the 13.0 milestone Oct 23, 2025
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.

1 participant