Vladimir Petukhov
Vladimir Petukhov

Reputation: 107

Azure DevOps Pipeline Variables Group Error

I have this problem. When trying to use variable groups with conditional templates pipeline gives me this error:

templates/vars-qa.yml (Line: 9, Col: 1): While parsing a block mapping, did not find expected key.

Here is the azure-pipelines.yml

trigger:
- main
- qa
- development
- staging



#//

resources:
- repo: self

variables:
  - ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/main') }}:
    - template: templates/vars-qa.yml
  - ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/qa') }}:
    - template: templates/vars-qa.yml
  - ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/development') }}:
    - template: templates/vars-dev.yml
  - ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/staging') }}:
    - template: templates/vars-qa.yml

stages:
  - template: templates/transform-settings.yml
  - template: templates/build-image.yml

And vars-qa.yml where error is happen:

variables:
  imageRepository: 'service-qa'
  dockerRegistryServiceConnection: 'dec124f0-814f-4511-94d3-b3396698767508'
  containerRegistry: 'test.azurecr.io'
  imagePullSecret: 'test1334fe31-auth'
  dockerfilePath: '**/Dockerfile'
  vmImageName: 'ubuntu-latest'
  tag: '$(Build.BuildId)'
- group: dev-secrets
- name: ConnectionStrings.DefaultConnection
  value: $(psql-conn-str-dev)

This is happen in -group: dev-secrets.The group is existing and the psql-conn-str-dev already to.I have tried with $(variables.psql-conn-str-dev) but result was the same. Everything works correctly without templates

Upvotes: 0

Views: 372

Answers (1)

promicro
promicro

Reputation: 1646

There is a problem in the indent of your template YAML. You cannot define a sequence item when in a mapping.

Please try and use an online YAML validator tool to check this: https://codebeautify.org/yaml-validator

I converted your variables to sequence items. I think this will work better:

variables:
- name:  imageRepository
  value: 'service-qa'
- name:  dockerRegistryServiceConnection
  value: 'dec124f0-814f-4511-94d3-b3396698767508'
- name:  containerRegistry
  value: 'test.azurecr.io'
- name:  imagePullSecret
  value: 'test1334fe31-auth'
- name: dockerfilePath
  value: '**/Dockerfile'
- name:  vmImageName
  value: 'ubuntu-latest'
- name: tag
  value: '$(Build.BuildId)'
- group: dev-secrets
- name: ConnectionStrings.DefaultConnection
  value: $(psql-conn-str-dev)

Upvotes: 3

Related Questions