Создайте переменные множителя задания агента Azure Devops с помощью YML

Фон

Насколько я понимаю, при создании конвейера выпуска в классическом режиме в Azure DevOps вам предоставляется возможность запустить задание с Parallelism Планом выполнения. Выбрав этот план, вы можете предоставить переменную Multipliers, которая будет запускать ваше задание один раз для каждой предоставленной вами переменной множителя, отключая значение переменной для каждого значения в вашей строке, разделенной запятыми.

Например, если бы я создал следующее задание конвейера выпуска:

И предоставил следующую переменную конвейера:  

Мой конвейер будет запускаться 3 раза — по одному разу для каждого значения переменной.

Вопрос

Можно ли сделать то же самое с yml для конвейера сборки?

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

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
124
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Думаю, что после дальнейшего расследования я нашел ответ.

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

Другой вариант параллельного запуска нескольких заданий — использовать ключевое слово каждый для циклического перебора параметров и создания задания для каждого параметра.

Пример:

parameters:
  - name: tenants
    type: object
    default:
      - Tenant1
      - Tenant2
      - Tenant3

trigger: none

pool:
  vmImage: 'ubuntu-latest'

jobs:
  - ${{ each tenant in parameters.tenants }}:
    - job: job_${{ tenant }}
      dependsOn: [] # no dependencies, run jobs in parallel
      displayName: Hello ${{ tenant }}
      steps:
      - script: |
          echo "Hello, ${{ tenant }}!"
        displayName: "Hello ${{ tenant }}"

Запускаем сборку:

Примечание:

  • Недостатком этого подхода является отсутствие возможности ограничить максимальное количество заданий, которые могут выполняться параллельно, в отличие от матричной стратегии (с использованием свойства maxParallel).

Другие вопросы по теме

Похожие вопросы

Получение ошибки 404 на конечной точке Openai Azure
Файл конфигурации NLog — извлеките значение из конфигурации службы WebConfig/App
Бессерверная база данных SQL и значительная задержка?
TF401019: репозиторий Git с именем или идентификатором abc не существует, или у вас нет разрешений на операцию, которую вы пытаетесь выполнить
Как вставить сведения о продукте в порядке возрастания на основе идентификатора продукта в приложении логики Azure? Текущая реализация является случайной
Почему выражение столбца LEAST считается неточным и не индексируемым?
Как обрабатывать длительные обратные вызовы функций Azure в приложении логики без тайм-аута?
Невозможно удалить обратную косую черту из ответа JSON в политике Azure APIM
Как передать общедоступный IP-адрес виртуальной машины Azure (созданный Terraform) в Ansible?
Функция Azure, запускаемая с помощью BLOB-объектов: BLOB-объект нельзя привязать к первому аргументу функции Azure в среде Azure