Skip to content

feat(ir): add typed builder for AzureWebApp@1 - #1179

Merged
jamesadevine merged 1 commit into
mainfrom
feat/ir-azure-web-app-v1-41ddce07a1be638f
Jun 24, 2026
Merged

feat(ir): add typed builder for AzureWebApp@1#1179
jamesadevine merged 1 commit into
mainfrom
feat/ir-azure-web-app-v1-41ddce07a1be638f

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

Summary

Adds a typed builder struct for AzureWebApp@1 to the ado-aw IR.

Motivation

Previously, any code that needed to emit this ADO task step had to hand-craft
TaskStep::new(...) with raw string input keys. This PR introduces a typed
builder struct (new(<required>) + typed optional setters + into_step()) so
required inputs are positional, optional inputs and their constrained values are
type-checked, and call sites stop using stringly-typed keys.

Changes

  • src/compile/ir/tasks/azure_web_app.rs: new AzureWebApp builder struct
    with AppType and DeploymentMethod typed enums, plus 10 #[cfg(test)] mod tests unit tests
  • src/compile/ir/tasks/mod.rs: pub mod azure_web_app; declaration
    (alphabetical order, after azure_powershell)

ADO Task Reference

  • Task: AzureWebApp@1
  • Docs: (https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/azure-web-app-v1)
  • Required inputs: azureSubscription, appType, appName, package
  • Optional inputs: deployToSlotOrASE, resourceGroupName, slotName,
    customDeployFolder, runtimeStack (Linux), startUpCommand (Linux),
    customWebConfig (Windows), deploymentMethod
  • Typed enums: AppType (WebApp | WebAppLinux), DeploymentMethod
    (Auto | ZipDeploy | RunFromPackage)

Validation

  • cargo build --all-targets
  • cargo test (10 new tests pass; full suite green)
  • cargo clippy --all-targets --all-features --workspace -- -D warnings

Created by the ado-task-ir-contributor workflow.

Warning

Firewall blocked 2 domains

The following domains were blocked by the firewall during workflow execution:

  • spsprodeus21.vssps.visualstudio.com
  • spsprodweu4.vssps.visualstudio.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "spsprodeus21.vssps.visualstudio.com"
    - "spsprodweu4.vssps.visualstudio.com"

See Network Configuration for more information.

Generated by ADO Task IR Contributor · 1.1K AIC · ⌖ 27.3 AIC · ⊞ 38.1K ·

Add `azure_web_app` submodule with:
- `AzureWebApp` builder struct (required: azureSubscription, appType,
  appName, package; optional: deployToSlotOrASE, resourceGroupName,
  slotName, customDeployFolder, runtimeStack, startUpCommand,
  customWebConfig, deploymentMethod)
- `AppType` enum (WebApp | WebAppLinux)
- `DeploymentMethod` enum (Auto | ZipDeploy | RunFromPackage)
- 10 unit tests covering required inputs, optional inputs, slot
  deployment, Linux runtime stack, and all enum variants

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions github-actions Bot mentioned this pull request Jun 24, 2026
@jamesadevine
jamesadevine marked this pull request as ready for review June 24, 2026 16:04
@jamesadevine
jamesadevine merged commit c9fdeb3 into main Jun 24, 2026
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