I am currently setting up an azure pipeline to deploy a ReactApp to a Blob storage container. I was a bit surprised when I hit the following error with an Ubuntu pool:
Task : Azure file copy Description : Copy files to Azure Blob Storage or virtual machines Version : 4.184.1 Author : Microsoft Corporation Help : https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-file-copy ============================================================================== ##[error]The current operating system is not capable of running this task. That typically means the task was written for Windows only. For example, written for Windows Desktop PowerShell. ##[debug]System.InvalidOperationException: The current operating system is not capable of running this task. That typically means the task was written for Windows only. For example, written for Windows Desktop PowerShell. at Microsoft.VisualStudio.Services.Agent.Worker.TaskRunner.RunAsync() at Microsoft.VisualStudio.Services.Agent.Worker.StepsRunner.RunStepAsync(IStep step, CancellationToken jobCancellationToken)
I did a quick search in the task lists and couldn’t find anything specifically for Linux. A bit of Googling brought up an open Github thread stating that there currently isn’t a built in task to address this issue.
The next best alternative is to use the AzureCli task and invoke it that way:
- task: AzureCLI@1 displayName: Deploy the UI inputs: azureSubscription: $(azureSubscription) scriptLocation: inlineScript inlineScript: | az storage blob upload-batch \ --destination \$web \ --account-name "$(storageAccountName)" \ --source "$(Agent.BuildDirectory)/$(outputDir)"
I’ve linked the GitHub issue below. It has a few alternatives to this task as well so worth reading if you’re having issues: https://github.com/microsoft/azure-pipelines-tasks/issues/8920#issuecomment-640596461