About This Page
This page is part of the Azure documentation. It contains code examples and configuration instructions for working with Azure services.
Bias Analysis
Bias Types:
⚠️
powershell_heavy
⚠️
windows_first
⚠️
windows_tools
⚠️
missing_linux_example
Summary:
The documentation demonstrates a strong Windows and PowerShell bias. All scripting examples use PowerShell, and the primary script-based deployment method is via PowerShell scripts (.ps1). The 'Azure PowerShell' task is featured exclusively, with no mention of Bash, CLI, or cross-platform scripting alternatives. The file copy and deployment examples use the 'windows-latest' build agent pool, and there are no Linux or macOS-specific instructions or examples. Windows tools and patterns (such as Visual Studio project scripts and PowerShell) are referenced before or instead of Linux equivalents.
Recommendations:
- Provide equivalent examples using Azure CLI (az) in Bash scripts, which are cross-platform and commonly used on Linux/macOS.
- Include YAML pipeline examples that use 'ubuntu-latest' or 'macos-latest' build agents for all tasks, not just for PowerShell.
- Mention and demonstrate how to use Bash scripts for ARM template deployment, including sample Bash scripts.
- Reference cross-platform editors and tools (such as VS Code) alongside or instead of Visual Studio.
- Clarify that PowerShell Core is available cross-platform, but also show how to use native shell scripting on Linux.
- Ensure that all tasks (such as file copy) have Linux-compatible alternatives, and provide examples using those alternatives (e.g., using AzCopy in Bash).
Create pull request
Flagged Code Snippets
trigger:
- master
pool:
vmImage: 'ubuntu-latest'
steps:
- task: AzurePowerShell@5
inputs:
azureSubscription: 'script-connection'
ScriptType: 'FilePath'
ScriptPath: './Deploy-AzTemplate.ps1'
ScriptArguments: -Location 'centralus' -ResourceGroupName 'demogroup' -TemplateFile templates\mainTemplate.json
azurePowerShellVersion: 'LatestVersion'
steps:
- task: AzurePowerShell@3
ScriptPath: '<your-relative-path>/<script-file-name>.ps1'
ScriptArguments: -Location 'centralus' -ResourceGroupName 'demogroup' -TemplateFile templates\mainTemplate.json
trigger:
- master
pool:
vmImage: 'windows-latest'
steps:
- task: AzureFileCopy@4
inputs:
SourcePath: 'templates'
azureSubscription: 'copy-connection'
Destination: 'AzureBlob'
storage: 'demostorage'
ContainerName: 'projecttemplates'
name: AzureFileCopy
trigger:
- master
pool:
vmImage: 'windows-latest'
steps:
- task: AzureFileCopy@4
inputs:
SourcePath: 'templates'
azureSubscription: 'copy-connection'
Destination: 'AzureBlob'
storage: 'demostorage'
ContainerName: 'projecttemplates'
name: AzureFileCopy
- task: AzureResourceManagerTemplateDeployment@3
inputs:
deploymentScope: 'Resource Group'
azureResourceManagerConnection: 'copy-connection'
subscriptionId: 'aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e'
action: 'Create Or Update Resource Group'
resourceGroupName: 'demogroup'
location: 'West US'
templateLocation: 'URL of the file'
csmFileLink: '$(AzureFileCopy.StorageContainerUri)templates/mainTemplate.json$(AzureFileCopy.StorageContainerSasToken)'
csmParametersFileLink: '$(AzureFileCopy.StorageContainerUri)templates/mainTemplate.parameters.json$(AzureFileCopy.StorageContainerSasToken)'
deploymentMode: 'Incremental'
deploymentName: 'deploy1'