From 765e6acd0138053f46e503bdb640c2cef1f6953d Mon Sep 17 00:00:00 2001 From: Dongyoung Lim Date: Thu, 29 Jan 2026 12:13:41 +0000 Subject: [PATCH 1/3] fix: load environment lazily to respect -e flag Stop injecting *environment.Environment in NewDeployAction and remove the stored env field. Resolve the environment at the start of DeployAction.Run (using envManager.Get with the parsed -e flag or azdCtx default) and use the resolved env for subscription checks, AspireDashboardUrl, cache invalidation, and follow-up output. This prevents the environment from being constructed before CLI flags are processed (fixes case where `-e` was ignored). --- cli/azd/internal/cmd/deploy.go | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/cli/azd/internal/cmd/deploy.go b/cli/azd/internal/cmd/deploy.go index 8cbed0de775..0e7401bc595 100644 --- a/cli/azd/internal/cmd/deploy.go +++ b/cli/azd/internal/cmd/deploy.go @@ -112,7 +112,6 @@ type DeployAction struct { args []string projectConfig *project.ProjectConfig azdCtx *azdcontext.AzdContext - env *environment.Environment envManager environment.Manager projectManager project.ProjectManager serviceManager project.ServiceManager @@ -136,7 +135,6 @@ func NewDeployAction( serviceManager project.ServiceManager, resourceManager project.ResourceManager, azdCtx *azdcontext.AzdContext, - environment *environment.Environment, envManager environment.Manager, accountManager account.Manager, cloud *cloud.Cloud, @@ -153,7 +151,6 @@ func NewDeployAction( args: args, projectConfig: projectConfig, azdCtx: azdCtx, - env: environment, envManager: envManager, projectManager: projectManager, serviceManager: serviceManager, @@ -181,7 +178,22 @@ func (da *DeployAction) Run(ctx context.Context) (*actions.ActionResult, error) targetServiceName = da.args[0] } - if da.env.GetSubscriptionId() == "" { + // Resolve the environment here (after flags have been parsed) to ensure we respect -e + envName := da.flags.EnvironmentName + if envName == "" { + var err error + envName, err = da.azdCtx.GetDefaultEnvironmentName() + if err != nil { + return nil, err + } + } + + env, err := da.envManager.Get(ctx, envName) + if err != nil { + return nil, fmt.Errorf("loading environment: %w", err) + } + + if env.GetSubscriptionId() == "" { return nil, errors.New( "infrastructure has not been provisioned. Run `azd provision`", ) @@ -349,7 +361,7 @@ func (da *DeployAction) Run(ctx context.Context) (*actions.ActionResult, error) return nil, err } - aspireDashboardUrl := apphost.AspireDashboardUrl(ctx, da.env, da.alphaFeatureManager) + aspireDashboardUrl := apphost.AspireDashboardUrl(ctx, env, da.alphaFeatureManager) if aspireDashboardUrl != nil { da.console.MessageUxItem(ctx, aspireDashboardUrl) } @@ -366,9 +378,9 @@ func (da *DeployAction) Run(ctx context.Context) (*actions.ActionResult, error) } // Invalidate cache after successful deploy so azd show will refresh - if err := da.envManager.InvalidateEnvCache(ctx, da.env.Name()); err != nil { + if err := da.envManager.InvalidateEnvCache(ctx, env.Name()); err != nil { log.Printf("warning: failed to invalidate state cache: %v", err) - } + } return &actions.ActionResult{ Message: &actions.ResultMessage{ @@ -378,7 +390,7 @@ func (da *DeployAction) Run(ctx context.Context) (*actions.ActionResult, error) da.portalUrlBase, da.projectConfig, da.resourceManager, - da.env, + env, false, ), }, From e2dc3946465ff4fbc55a69078245ff2a233103bf Mon Sep 17 00:00:00 2001 From: Dongyoung Lim Date: Thu, 29 Jan 2026 12:36:34 +0000 Subject: [PATCH 2/3] fix: correct variable assignment in DeployAction Run method --- cli/azd/internal/cmd/deploy.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/azd/internal/cmd/deploy.go b/cli/azd/internal/cmd/deploy.go index 0e7401bc595..e85de7541b0 100644 --- a/cli/azd/internal/cmd/deploy.go +++ b/cli/azd/internal/cmd/deploy.go @@ -199,7 +199,7 @@ func (da *DeployAction) Run(ctx context.Context) (*actions.ActionResult, error) ) } - targetServiceName, err := getTargetServiceName( + targetServiceName, err = getTargetServiceName( ctx, da.projectManager, da.importManager, From 9b364da03525441689306d17f8ecb1b8e6613fb4 Mon Sep 17 00:00:00 2001 From: Dongyoung Lim Date: Thu, 29 Jan 2026 18:24:39 +0000 Subject: [PATCH 3/3] fix: correct formatting in DeployAction Run method --- cli/azd/internal/cmd/deploy.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/azd/internal/cmd/deploy.go b/cli/azd/internal/cmd/deploy.go index e85de7541b0..0caf82ab650 100644 --- a/cli/azd/internal/cmd/deploy.go +++ b/cli/azd/internal/cmd/deploy.go @@ -380,7 +380,7 @@ func (da *DeployAction) Run(ctx context.Context) (*actions.ActionResult, error) // Invalidate cache after successful deploy so azd show will refresh if err := da.envManager.InvalidateEnvCache(ctx, env.Name()); err != nil { log.Printf("warning: failed to invalidate state cache: %v", err) - } + } return &actions.ActionResult{ Message: &actions.ResultMessage{