замена переменной не происходит при использовании шаблонов azure конвейеров - PullRequest
0 голосов
/ 08 мая 2020

Итак, я пытаюсь отправить параметр в мое развертывание шаблона, не уверен, что не так, другие параметры работают должным образом, это только новый, который не работает, но если я установил его на логическое значение без параметров, он работает .

похоже, что подстановки переменной som не происходит, и я просто не могу понять, почему это должно быть что-то простое, но я просто не могу ее найти

Это usek8s это не работает, изображение из вкладки переменных

enter image description here

фрагмент из azure -pipelines.yml, когда он не работает

  - template: yml/pipeline-templates/deployment.yaml@parent
    parameters:
    usek8s: $(usek8s)
    stageId: Deploy_Dev
    vmImage: $(vmVersion)
    environment: 'dev'
    targetBranch: 'master'
    namespace: $(k8sNamespace)
    imagePullSecret: $(imagePullSecret)
    containerRegistry: $(dockerRegistryServiceConnection)
    tag: $(tag)
    imageRepository: $(imageRepository)
    kubernetesServiceConnection: $(k8sConnectionDev)
    dependsOn: Build_Docker_Deventer

фрагмент из azure -pipelines.yml, когда он работает

  - template: yml/pipeline-templates/deployment.yaml@parent
    parameters:
    usek8s: false
    stageId: Deploy_Dev
    vmImage: $(vmVersion)
    environment: 'dev'
    targetBranch: 'master'
    namespace: $(k8sNamespace)
    imagePullSecret: $(imagePullSecret)
    containerRegistry: $(dockerRegistryServiceConnection)
    tag: $(tag)
    imageRepository: $(imageRepository)
    kubernetesServiceConnection: $(k8sConnectionDev)
    dependsOn: Build_Docker_Deventer

фрагмент из родительского шаблона

    parameters:
    - name: usek8s
      displayName: 'Use k8s deploy process?'
      type: boolean
      default: false
    - name: stageId
    - name: vmImage
    - name: targetBranch
    - name: environment
    - name: namespace
    - name: imagePullSecret
    - name: containerRegistry
    - name: tag
    - name: imageRepository
    - name: kubernetesServiceConnection
    - name: dependsOn
      default: []
stages:
- stage: ${{ parameters.stageId }}
  displayName: '${{ parameters.stageId }}'
  dependsOn: ${{ parameters.dependsOn }}
  condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/heads/${{ parameters.targetBranch }}'), eq(${{ parameters.usek8s }}, true))
  jobs:

ошибка, я получаю

enter image description here

если я удалю логический тип данных и просто запустил его с именем, я получаю такую ​​же ошибку только в строке условий enter image description here

1 Ответ

1 голос
/ 11 мая 2020

замена переменной не происходит при использовании шаблонов azure конвейеров

Это известная проблема, о которой было сообщено команде MS. Вы можете проверить следующий поток для некоторых деталей:

Переменные времени очереди не отменяют переменную по умолчанию

Это потому, что мы не могли использовать переменные очереди для перезаписи параметров времени компиляции.

Итак, команда MS недавно выпустила новую функцию Параметры времени выполнения , позволяющие вставлять данные в фазы препроцессора конвейерной компиляции:

параметры: - name : usek8s displayName: UseUsek8s? type: boolean по умолчанию: False

Когда мы ставим конвейер в очередь, мы можем выбрать, будем ли мы использовать usek8s:

enter image description here

Надеюсь, это поможет.

...