Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix: Ensure azd up -e deploys resources to the specified environment, ignoring the default environment #4561

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
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
8 changes: 8 additions & 0 deletions cli/azd/cmd/up.go
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,14 @@ func (u *upAction) Run(ctx context.Context) (*actions.ActionResult, error) {
u.console.Message(ctx, output.WithGrayFormat("Note: Running custom 'up' workflow from azure.yaml"))
}

envValue := u.flags.EnvFlag.EnvironmentName
for _, step := range upWorkflow.Steps {
if envValue != "" {
stepArgs := append(step.AzdCommand.Args, "-e", envValue)
step.AzdCommand.Args = stepArgs
}
}
Copy link
Member

Choose a reason for hiding this comment

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

Since -e is a global flag, we should not manually set it like this. It should be already visible to all commands.

Copy link
Member Author

Choose a reason for hiding this comment

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

@vhvb1989 Thanks for your feedback!

When debugging the azd up -e <environment> command, we found that the actual executed steps (such as azd package, azd provision, and azd deploy) did not include the -e flag, which caused these commands to use the default environment instead of the environment specified by the user through -e. To ensure that these subcommands can correctly use the environment specified by -e, I manually set it in the code.

If you think there is a better solution, you are welcome to discuss further in the issue #4411 (comment)!

Copy link
Contributor

Choose a reason for hiding this comment

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

The current solution wouldn't work if the user added the workflow step to reference an azd command not accepting -e. An immediate solution doesn't come to mind, but will require some additional team discussion.


if err := u.workflowRunner.Run(ctx, upWorkflow); err != nil {
return nil, err
}
Expand Down
Loading