#azure-devops #azure-pipelines #azure-pipelines-yaml
Вопрос:
У меня есть трубопровод yaml, который ссылается на некоторые шаблоны. У меня есть группа переменных, связанная с этим основным файлом yaml, и я хочу передать одну из ее переменных в шаблон.
Это просто, когда я хочу «просто использовать это», как показано ниже:
пример:
stages: - stage: Deployment variables: - group: My_group_variables jobs: - template: /templates/jobs/myJobTemplate.yml parameters: someParameter: $(variable_from_my_variable_group)
myJobTemplate.yml:
parameters: - name: someParameter default: '' jobs: - job: Myjob steps: - task: Bash@3 inputs: targetType: 'inline' script: cat ${{ parameters.someParameter}}
Он не работает, когда я хочу проверить параметры, такие как:
parameters: - name: environmentName type: string values: - Development - Test - UAT - Production
Или когда я хочу использовать имя «подключение к службе» в качестве переменной.
... - task: KubernetesManifest@0 displayName: Deploy to Kubernetes cluster inputs: action: 'deploy' kubernetesServiceConnection: ${{ parameters.kubernetesServiceConnection }} namespace: ${{ parameters.kubernetesNamespace }} manifests: ${{ variables.manifestFile }} ...
Кто-нибудь знает, как я должен использовать эти переменные с предварительно проверенными параметрами или подключениями к службам?
Скорее всего, это проблема со временем разрешения значений. Заранее определенные параметры и имена подключений к службам проверяются во время компиляции, в то время как значения из $() разрешаются во время выполнения.
Я не могу использовать расширения и переменные в этом шаблоне.
Может быть, у кого-то есть шаблон для такого рода использования?
Комментарии:
1. Когда вы говорите «он не сотрудничает», что вы имеете в виду? не компилируется ли конвейер или шаблон? Вы получаете конкретное сообщение об ошибке? Неужели ничего не происходит? Может быть полезно предоставить больший образец из вашего конвейера и шаблона.
2. @WaitingForGuacamole Я имею в виду, что он не может видеть значение. Он обрабатывает имя как значение и выводит сообщение об ошибке, что это соединение среды/службы не существует.