2

Is it possible to use multiline in YAML in Azure Pipelines tasks? For instance for the ARM deployment task, there is an overrideParameters property. It would be nice if this could be split accross several lines instead of putting everything in one line:

- task: AzureResourceManagerTemplateDeployment@3
          displayName: 'ARM deploy MyFunctionAPP'
          inputs:
            deploymentScope: 'Resource Group'
            azureResourceManagerConnection: ${{ parameters.serviceConnection }}
            subscriptionId: ${{ parameters.subscriptionId }}
            action: 'Create Or Update Resource Group'
            resourceGroupName: ${{ parameters.resourceGroupName }}
            location: 'West Europe'
            templateLocation: 'Linked artifact'
            csmFile: '$(ARMtemplatesPath)\MyFunctionAPP\template.json'
            csmParametersFile: '$(ARMtemplatesPath)\MyFunctionAPP\parameters.json'
            deploymentMode: 'Incremental'
            overrideParameters: '-environment_name ${{ parameters.environmentName }} -vnetAddressPrefix ${{ parameters.vnetAddressPrefix }} -subnet1Prefix ${{ parameters.subnet1Prefix }} -APIkey ${{ parameters.APIkey }} -queueName ${{ parameters.queueNameMyQueue }} -SendGridAPIkey ${{ parameters.SendGridAPIkey }} -StorageConnectionAppSetting ${{ parameters.StorageConnectionAppSetting }}'

Is it somehow possible to split the overrideParameters values on multiple lines?

Oliver Nilsen
  • 873
  • 2
  • 10
  • 27

2 Answers2

4

This has worked for me:

overrideParameters: >-
  -environment_name "${{ parameters.environmentName }}" 
  -vnetAddressPrefix "${{ parameters.vnetAddressPrefix }}" 
  -subnet1Prefix "${{ parameters.subnet1Prefix }}"
  -APIkey "${{ parameters.APIkey }}"
  -queueName "${{ parameters.queueNameMyQueue }}" 
  -SendGridAPIkey "${{ parameters.SendGridAPIkey }}"
  -StorageConnectionAppSetting "${{ parameters.StorageConnectionAppSetting }}"

So using >- on a single line and then using double-quotes to surround settings values works.

Oliver Nilsen
  • 873
  • 2
  • 10
  • 27
2

Is it somehow possible to split the overrideParameters values on multiple lines?

According to the document Expressions, we could use a pipe character (|) for multiline strings:

- task: AzureResourceManagerTemplateDeployment@3
          displayName: 'ARM deploy MyFunctionAPP'
          inputs:
            deploymentScope: 'Resource Group'
            azureResourceManagerConnection: ${{ parameters.serviceConnection }}
            subscriptionId: ${{ parameters.subscriptionId }}
            action: 'Create Or Update Resource Group'
            resourceGroupName: ${{ parameters.resourceGroupName }}
            location: 'West Europe'
            templateLocation: 'Linked artifact'
            csmFile: '$(ARMtemplatesPath)\MyFunctionAPP\template.json'
            csmParametersFile: '$(ARMtemplatesPath)\MyFunctionAPP\parameters.json'
            deploymentMode: 'Incremental'
            overrideParameters: |
             -environment_name ${{ parameters.environmentName }}
             -vnetAddressPrefix ${{ parameters.vnetAddressPrefix }}
             -subnet1Prefix ${{ parameters.subnet1Prefix }}
             -APIkey ${{ parameters.APIkey }}
             -queueName ${{ parameters.queueNameMyQueue }}
             -SendGridAPIkey ${{ parameters.SendGridAPIkey }}
             -StorageConnectionAppSetting ${{ parameters.StorageConnectionAppSetting }}

You could check this thread for some more details.

Leo Liu-MSFT
  • 62,538
  • 8
  • 91
  • 107