Можно ли создать матричную стратегию, управляемую данными, аналогичную GitHub Actions?
Ответ - да. Это известная проблема, о которой уже сообщалось на github:
Добавить стратегию матрицы перекрестного продукта
Кроме того, существует обходной путь, в котором эта проблема упоминается в официальная документация :
Примечание
Матричный синтаксис не поддерживает автоматическое c масштабирование задания, но вы можете реализовать аналогичные функции с помощью ключевого слова each. Для примера см. nedrebo / parameterized- azure -jobs .
jobs:
- template: azure-pipelines-linux.yml
parameters:
images: [ 'archlinux/base', 'ubuntu:16.04', 'ubuntu:18.04', 'fedora:31' ]
pythonVersions: [ '3.5', '3.6', '3.7' ]
swVersions: [ '1.0.0', '1.1.0', '1.2.0', '1.3.0' ]
- template: azure-pipelines-windows.yml
parameters:
images: [ 'vs2017-win2016', 'windows-2019' ]
pythonVersions: [ '3.5', '3.6', '3.7' ]
swVersions: [ '1.0.0', '1.1.0', '1.2.0', '1.3.0' ]
azure -pipelines- windows .yml:
jobs:
- ${{ each image in parameters.images }}:
- ${{ each pythonVersion in parameters.pythonVersions }}:
- ${{ each swVersion in parameters.swVersions }}:
- job:
displayName: ${{ format('OS:{0} PY:{1} SW:{2}', image, pythonVersion, swVersion) }}
pool:
vmImage: ${{ image }}
steps:
- script: echo OS version &&
wmic os get version &&
echo Lets test SW ${{ swVersion }} on Python ${{ pythonVersion }}