Azure Deployment treated as Offline?

I have a “Deploy an Azure Web App” step that is including the Variables.json, Variables.secret, and Bootstrap.ps1 files during the deployment.

Here is a clip from the log:

                    |   == Success: Step 3: Customer.Website ==
08:59:34   Verbose  |     Octopus Server version: 3.3.2+Branch.master.Sha.ba2859229aae7aaca25a803313513ec7e3f4178a
08:59:34   Verbose  |     Using account ID 'azuresubscription-development'
08:59:35   Verbose  |     Octopus Deploy: Calamari.Azure version 3.3.1+Branch.master.Sha.25c4524418a3a9922cde6da7ebf074dba37ea326
08:59:35   Info     |     Deploying package:    E:\Octopus\OctopusServer\PackageCache\feeds-proget-artifacts\Customer.Website.0.0.5-dev_0B7E25C0B87B8E40BA4068B73853D742.nupkg
08:59:35   Verbose  |     Extracting package to: E:\Octopus\Work\20160310135934-58
08:59:35   Verbose  |     Extracted 46 files
08:59:36   Info     |     Deploying to Azure WebApp 'Customer-Web-Dev-USEast(Staging)' using subscription-id '19ef690e-9587-4827-b3c6-d2e12ae0206d'
08:59:39   Verbose  |     Retrieving publishing profile...
08:59:39   Verbose  |     Retrieved publishing profile: URI: Customer-web-dev-useast-staging.scm.azurewebsites.net:443  UserName: $Customer-Web-Dev-USEast__Staging
08:59:40   Verbose  |     Using ID 'a83ed943-a040-42c2-96c3-2a422da0b651' for connections to the remote server.
08:59:40   Verbose  |     Pre-authenticating to remote agent URL 'https://Customer-web-dev-useast-staging.scm.azurewebsites.net/msdeploy.axd?site=Customer-Web-Dev-USEast(Staging)' as '$Customer-Web-Dev-USEast__Staging'.
08:59:45   Verbose  |     Performing synchronization pass #1.
08:59:45   Verbose  |     Pre-authenticating to remote agent URL 'https://Customer-web-dev-useast-staging.scm.azurewebsites.net/msdeploy.axd?site=Customer-Web-Dev-USEast(Staging)' as '$Customer-Web-Dev-USEast__Staging'.
08:59:47   Verbose  |     Received response from agent (HTTP status 'OK').
...
08:59:47   Verbose  |     Deleting file (Customer-Web-Dev-USEast(Staging)\hostingstart.html).
...
08:59:47   Verbose  |     The dependency check 'DependencyCheckInUse' found no issues.
08:59:47   Verbose  |     The current synchronization pass is missing stream content for 49 objects.
08:59:47   Verbose  |     Using ID '614d4426-0bd7-4345-8f44-ec0b3a359234' for connections to the remote server.
08:59:47   Verbose  |     Performing synchronization pass #2.
08:59:47   Verbose  |     Pre-authenticating to remote agent URL 'https://Customer-web-dev-useast-staging.scm.azurewebsites.net/msdeploy.axd?site=Customer-Web-Dev-USEast(Staging)' as '$Customer-Web-Dev-USEast__Staging'.
08:59:49   Verbose  |     Received response from agent (HTTP status 'OK').
...
08:59:49   Verbose  |     Adding file (Customer-Web-Dev-USEast(Staging)\Bootstrap.ps1).
...
08:59:49   Verbose  |     Adding file (Customer-Web-Dev-USEast(Staging)\Variables.json).
08:59:49   Verbose  |     Adding file (Customer-Web-Dev-USEast(Staging)\Variables.secret).
...
08:59:49   Verbose  |     The dependency check 'DependencyCheckInUse' found no issues.
08:59:49   Verbose  |     The synchronization completed in 2 pass(es).
08:59:49   Info     |     Successfully deployed to Azure. 57 objects added. 0 objects updated. 1 objects deleted.
08:59:49   Verbose  |     Customer.Website completed

It is my understanding that this is done for offline deployments but I don’t want this for an Azure deployment.
I don’t have any features enabled for the deployment step and have “Remove additional files” selected.

I am also using Azure deployment slots as detailed here: http://docs.octopusdeploy.com/display/OD/Using+Deployment+Slots+with+Azure+Web+Apps

We are using Octopus 3.3.2.

AzureSCM.png

Hi Mike,

I agree, it is not ideal that these files are deployed. I have raised an issue which you can track. We’ll get this resolved as soon as possible.

Thank-you for the feedback.

Regards,
Michael

Thanks!

If anyone else has this issue here is a simple PowerShell script I made to remove the files after the deployment:

$userName = $OctopusParameters['Inf:AzureUserName']
$password = $OctopusParameters['Inf:AzurePassword']
$fileList = @("site/wwwroot/Bootstrap.ps1", "site/wwwroot/Variables.json", "site/wwwroot/Variables.secret")

$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $userName,$password)))
$apiUrl = "https://" + $WebSite + ".scm.azurewebsites.net/api/vfs/"

foreach($file in $fileList)
{ 
    $fileURL = $apiUrl + $file
    Write-Host "Removing: $($fileURL)"
    try
    {
        Invoke-RestMethod -Uri ($fileURL) -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo); "If-Match"="*"} -Method DELETE
    } 
    catch 
    {
        if(-not $_.Exception.Message.Contains("(404) Not Found"))
        {
            throw "ERROR: $($_.Exception.Message)"
        }
    }
}

You can get the user name and password from the publish profile via the Azure Portal.

This is causing us problems for our Azure Web Jobs deployments, too. Any plan for resolution?

Folks,

This issue should be resolved in our latest release (3.3.13).

We apologize for any inconvenience.