Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 20 additions & 8 deletions cli/azd/internal/cmd/deploy.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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,
Expand All @@ -153,7 +151,6 @@ func NewDeployAction(
args: args,
projectConfig: projectConfig,
azdCtx: azdCtx,
env: environment,
envManager: envManager,
projectManager: projectManager,
serviceManager: serviceManager,
Expand Down Expand Up @@ -181,13 +178,28 @@ 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`",
)
}

targetServiceName, err := getTargetServiceName(
targetServiceName, err = getTargetServiceName(
ctx,
da.projectManager,
da.importManager,
Expand Down Expand Up @@ -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)
}
Expand All @@ -366,7 +378,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, 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)
}

Expand All @@ -378,7 +390,7 @@ func (da *DeployAction) Run(ctx context.Context) (*actions.ActionResult, error)
da.portalUrlBase,
da.projectConfig,
da.resourceManager,
da.env,
env,
false,
),
},
Expand Down
Loading