Как я могу ограничить группу переменных только в шаблоне конвейера?

#azure-devops #azure-pipelines

#azure-devops #azure-конвейеры

Вопрос:

Я подумываю об использовании переменных в шаблоне конвейера

  1. Я хочу, чтобы шаблон принимал в variable group name качестве параметра
  2. Когда я загружаю группу переменных из шаблона, я не хочу, чтобы значения отображались обратно в остальной части конвейера.

Целью шаблона, который я хотел создать, было взять переменную, преобразовать ее в файл и сохранить как секрет Docker.

Я думаю, мне понадобится команда az pipelines variable group variable list для получения записи, но я не могу найти параметр, который указывает мне показывать значение, даже если оно секретное.

Ответ №1:

Я также не нашел способа получить секретные значения из CLI, но у меня возникла идея ограничить область действия переменной конкретным заданием. Вы можете передать имя переменной group в качестве параметра, а затем использовать его в задании, которое предназначено только для создания Docker secret:

 parameters:
- name: variableGroupName # name of the parameter; required
  type: string # data type of the parameter; required
  default: 'PROD'  
  
jobs:
- job: Ubuntu
  pool:
    vmImage: 'ubuntu-latest'
  variables:
  - group: ${{ parameters.variableGroupName }}
  steps:
  - script: |
      echo '$(armConnection)'
      echo '$(myhello)'
      echo '$(secretVar)'
    continueOnError: true
  - script: env | sort
  

и затем

 jobs:
- template: jobs.yaml  # Template reference
  parameters:
    variableGroupName: 'my-variable-group'
  

armConnection myhello и secretVar являются секретными для переменной group. Достаточно ли этого для вас или вы хотите поместить все переменные из group, не записывая их в yaml?

Комментарии:

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