Deploy an Azure Web App (Web Deploy)

Octopus.AzureWebApp exported 2026-07-22 by Octopus Deploy belongs to ‘Azure’ category.

Deploy a package to an Azure Web App using Web Deploy (MSDeploy).

Parameters

When this step is included in a project’s deployment process, the parameters below can be set.

Account

Octopus.Action.Azure.AccountId

Select the Azure account to use for the deployment. Used in legacy mode only.

Example: azure-account-1

Enable Legacy Mode

Octopus.Action.Azure.IsLegacyMode

Select legacy mode if you wish to configure account-related properties on the step and not through Azure Targets.

Allowed values: True, False

Default: False

Web App Name

Octopus.Action.Azure.WebAppName (required)

The name of the Azure Web App to deploy to.

Example: my-web-app

Resource Group

Octopus.Action.Azure.ResourceGroupName

The name of the resource group containing the Web App.

Example: my-resource-group

Deployment Slot

Octopus.Action.Azure.DeploymentSlot

The deployment slot to deploy to. Slots let you deploy different versions of your web app to different URLs.

Example: staging

Physical Path

Octopus.Action.Azure.PhysicalPath

Physical path relative to site root. e.g. ‘foo’ will deploy to ‘site\wwwroot\foo’. Leave blank to deploy to root.

Example: foo

Remove Additional Files

Octopus.Action.Azure.RemoveAdditionalFiles

Select to remove additional files on the destination that are not part of the deployment.

Allowed values: True, False

Default: False

Preserve App_Data

Octopus.Action.Azure.PreserveAppData

Select to preserve files in the App_Data folder before deployment.

Allowed values: True, False

Default: False

Enable AppOffline

Octopus.Action.Azure.AppOffline

Select to safely bring down the app domain with app_offline.html in root.

Allowed values: True, False

Default: False

File Comparison Method

Octopus.Action.Azure.UseChecksum

Select which method will be used to determine which files will be updated during deployment. Checksum method may increase deployment time significantly.

Allowed values: True, False

Default: False

Optional features

Enable features by adding their IDs to Octopus.Action.EnabledFeatures (a comma-separated list).

.NET Configuration Transforms Octopus.Features.ConfigurationTransforms

Runs configuration file transforms. Enabled by default for package deployments.

Octopus.Action.Package.AutomaticallyRunConfigurationTransformationFiles

Octopus.Action.Package.AutomaticallyRunConfigurationTransformationFiles

Run default XML transforms (True/False).

Octopus.Action.Package.AdditionalXmlConfigurationTransforms

Octopus.Action.Package.AdditionalXmlConfigurationTransforms

Comma- or newline-separated list of additional transform rules (e.g. Web.Release.config => Web.config).

.NET Configuration Variables Octopus.Features.ConfigurationVariables

Replace appSettings and connectionStrings in .config files. Enabled by default for package deployments.

Octopus.Action.Package.AutomaticallyUpdateAppSettingsAndConnectionStrings

Octopus.Action.Package.AutomaticallyUpdateAppSettingsAndConnectionStrings

Replace appSettings and connectionStrings in .config files (True/False).

Custom Deployment Scripts Octopus.Features.CustomScripts

Execute scripts during the deployment (pre-deploy, deploy, post-deploy) without embedding them in your package.

Octopus.Action.CustomScripts.PreDeploy.

Octopus.Action.CustomScripts.PreDeploy.<ext>

Pre-deploy script body. The key’s is the script language extension: ps1 (PowerShell), sh (Bash), csx (C#), or py (Python).

Octopus.Action.CustomScripts.Deploy.

Octopus.Action.CustomScripts.Deploy.<ext>

Deploy-phase script body. The key’s is the script language extension: ps1 (PowerShell), sh (Bash), csx (C#), or py (Python).

Octopus.Action.CustomScripts.PostDeploy.

Octopus.Action.CustomScripts.PostDeploy.<ext>

Post-deploy script body. The key’s is the script language extension: ps1 (PowerShell), sh (Bash), csx (C#), or py (Python).

Structured Configuration Variables Octopus.Features.JsonConfigurationVariables

Replace settings in JSON, YAML, XML, and Java Properties files with Octopus variables. Enabled by default for package deployments.

Octopus.Action.Package.JsonConfigurationVariablesTargets

Octopus.Action.Package.JsonConfigurationVariablesTargets

Newline-separated list of target files (e.g. appsettings.json). Wildcards supported.

Substitute Variables in Templates Octopus.Features.SubstituteInFiles

Transforms files using the Octopus #{Variable} substitution syntax. Enabled by default for package deployments.

Octopus.Action.SubstituteInFiles.TargetFiles

Octopus.Action.SubstituteInFiles.TargetFiles

Newline-separated list of file names to transform (relative to package). Wildcards supported.

Octopus.Action.SubstituteInFiles.OutputEncoding

Octopus.Action.SubstituteInFiles.OutputEncoding

Encoding name for the output file (e.g. utf-8). Optional.

PowerShell Edition Octopus.Features.SelectPowerShellEditionForWindows

Specify the edition of PowerShell used during deployments on Windows.

Octopus.Action.PowerShell.Edition

Octopus.Action.PowerShell.Edition

PowerShell edition on Windows (Desktop or Core).

Allowed values: Desktop, Core

Step configuration using OCL

Example in Octopus Configuration Language (OCL):

step "deploy-azure-web-app" {
    name = "Deploy Azure Web App"
    properties = {
        Octopus.Action.TargetRoles = "azure-web-app"
    }

    action {
        action_type = "Octopus.AzureWebApp"
        properties = {
            Octopus.Action.Azure.UseChecksum = "False"
            Octopus.Action.Azure.WebAppName = "my-web-app"
            Octopus.Action.Package.DownloadOnTentacle = "False"
            Octopus.Action.Package.FeedId = "octopus-server-built-in"
            Octopus.Action.Package.PackageId = "MyWebApp"
            Octopus.Action.RunOnServer = "false"
            OctopusUseBundledTooling = "False"
        }

        packages {
            acquisition_location = "Server"
            feed = "octopus-server-built-in"
            package_id = "MyWebApp"
        }
    }
}

Page updated on Wednesday, July 22, 2026