Add Hybrid (Container Apps) deployment script generation for ADO#9158
Add Hybrid (Container Apps) deployment script generation for ADO#9158anandgmenon wants to merge 3 commits into
Conversation
…lines - Add DeploymentTargetStep: prompts Standard vs Hybrid target selection - Add ConnectedEnvironmentStep: lists connected environments from subscription - Fix subscription ordering bug: SubscriptionAndResourceGroupStep now runs before ConnectedEnvironmentStep via DeploymentTargetStep.getSubWizard() - Generate Hybrid ARM template (containerApp + logicApp + SMB storage) - Generate CI/CD pipeline YAML with variable files for Hybrid deployments - Transform managed connection templates: replace Microsoft.Web/Sites identity refs with AAD parameters for Container Apps compatibility - Add workflowparameters/ folder for Build task compatibility - Use -fs suffix for storage share names (32-char limit) - Add DeploymentTargetType enum and validation constants
🤖 AI PR Validation ReportPR Review ResultsThank you for your submission! Here's detailed feedback on your PR title and body compliance:✅ PR Title
✅ Commit Type
✅ Risk Level
✅ What & Why
✅ Impact of Change
|
| Section | Status | Recommendation |
|---|---|---|
| Title | ✅ | Optionally spell out ADO or include scope (VS Code wizard) |
| Commit Type | ✅ | No change needed |
| Risk Level | ✅ | No change needed |
| What & Why | ✅ | No change needed |
| Impact of Change | ✅ | Add note re: changelog/version bump and confirm ADO task availability |
| Test Plan | Add unit tests for transformation/generation helpers if possible | |
| Contributors | Add contributors or a short note if none | |
| Screenshots/Videos | Add at least one screenshot of the new wizard prompt |
Final notes & quick items to consider before merge
- Add unit tests for the transformation and generation helpers if feasible — these are fast and reduce future risk.
- Confirm the availability and contract of the custom ADO tasks (
AzureLogicAppsHybridBuild@0,AzureLogicAppsHybridRelease@0,AzureLogicAppsHybridConnectionsDeployment@0) and document any required Azure DevOps extensions or task versions. - Consider adding a small changelog entry and bumping the package version for libs/vscode-extension since a new public type (DeploymentTargetType) was added.
- Add at least one screenshot of the new DeploymentTargetStep and ConnectedEnvironment selection to the PR to aid UX review.
- Add a small README or extend the existing wizard docs to clearly state how to set the required ADO secret variables for the generated pipelines.
Please update the PR with the optional items above (unit tests, screenshots, contributor notes, and any documentation/changelog) when convenient. Overall this PR is well-formed, follows the template, and the selected risk level (Medium) matches the changes in the diff — good work!
Last updated: Tue, 12 May 2026 06:38:27 GMT
📊 Coverage CheckThe following changed files need attention: ❌ Please add tests for the uncovered files before merging. |
…ng, comment cleanup - Remove secret placeholders (sqlConnectionString, fileSharePassword, aadClientSecret) from generated ARM parameters file - secrets must be supplied via ADO pipeline secret variables only - Filter connected environments by selected resource group location to avoid cross-region mismatches - Use case-insensitive matching for Microsoft.Web/Sites in access policy identity fixup (handles both Sites and sites casing from API responses) - Clean up NOTE(anandgmenon) comment prefixes across all files
There was a problem hiding this comment.
Pull request overview
Adds support in the VS Code “Generate Deployment Scripts” flow to generate Azure DevOps CI/CD artifacts for Hybrid Logic Apps (Container Apps) in addition to the existing Standard (App Service) path.
Changes:
- Introduces a deployment-target selection step (Standard vs Hybrid) and stores the chosen target in the wizard context/telemetry.
- Adds Hybrid artifact generation in the ADO pipeline path (Hybrid ARM template + parameters + pipeline YAML), and post-processes managed connection templates for Hybrid.
- Adds validations/constants and exposes a new
DeploymentTargetTypemodel in thevscode-extensionlibrary.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| libs/vscode-extension/src/lib/models/project.ts | Adds exported DeploymentTargetType enum/type for consumers. |
| apps/vs-code-designer/src/constants.ts | Adds Connected Environment / resource group name validation regexes. |
| apps/vs-code-designer/src/app/commands/generateDeploymentScripts/generateDeploymentScriptsSteps/DeploymentTargetStep.ts | New wizard step to choose Standard vs Hybrid and branch prompt steps accordingly. |
| apps/vs-code-designer/src/app/commands/generateDeploymentScripts/generateDeploymentScriptsSteps/DeploymentScriptTypeStep.ts | Hooks the new target-selection step into the ADO pipeline flow. |
| apps/vs-code-designer/src/app/commands/generateDeploymentScripts/generateDeploymentScriptsSteps/adoDeploymentScriptsSteps/GenerateADODeploymentScriptsStep.ts | Implements Hybrid artifact generation, Hybrid pipeline YAML generation, and managed-connection template transforms. |
| apps/vs-code-designer/src/app/commands/generateDeploymentScripts/generateDeploymentScriptsSteps/adoDeploymentScriptsSteps/ConnectedEnvironmentStep.ts | New wizard step to select a Connected Environment for Hybrid deployments. |
| apps/vs-code-designer/src/app/commands/generateDeploymentScripts/generateDeploymentScripts.ts | Extends wizard context with deployment target + Connected Environment fields. |
| parameters: {}, | ||
| variables: {}, | ||
| resources: [ | ||
| { | ||
| apiVersion: '2024-02-02-preview', |
- Add expressionEvaluationOptions.scope: outer to nested storage deployment so inner resources can reference outer template parameters/variables - Replace escaped \ with proper in generated ADO pipeline YAML so Azure DevOps variable substitution works correctly
Commit Type
Risk Level
What & Why
Adds support for generating Azure DevOps CI/CD artifacts for Hybrid Logic Apps (Container Apps) in addition to Standard (App Service). The VS Code "Generate Deployment Scripts" wizard now prompts users to choose a deployment target (Standard vs Hybrid), and generates the correct ARM templates, pipeline YAML, and connection transforms for each.
Why: Customers deploying Logic Apps to Container Apps (Hybrid) need different infrastructure (Microsoft.App/containerApps instead of Microsoft.Web/sites) and different connection authentication (AAD OAuth instead of managed identity). This enables generating correct deployment artifacts directly from the VS Code wizard.
Impact of Change
DeploymentTargetTypetolibs/vscode-extension. New wizard step classes (DeploymentTargetStep,ConnectedEnvironmentStep) and helper utilities (transformConnectionTemplatesForHybrid,fixAccessPolicyIdentityForHybrid). Consumers of the libs package may need to accommodate the new enum/type.deploymentTarget,lastStepvalues for Hybrid steps). Generated pipeline templates reference new ADO tasks (AzureLogicAppsHybridBuild@0,AzureLogicAppsHybridRelease@0,AzureLogicAppsHybridConnectionsDeployment@0). Secrets (SQL connection string, SMB password, AAD client secret) must be supplied via ADO pipeline secret variables only -- they are excluded from generated parameter files.Test Plan
Contributors
Screenshots/Videos
TODO