У меня есть проект мультиконфигурации Jenkins с двумя переменными для объединения:
версия (от оси матрицы сборки)
1.2
1.3
платформа (параметр сборки)
ubuntu
windows
Некоторые комбинации поддерживаются, другие нет. Их гораздо больше, чем указано выше, но здесь мы постараемся упростить это.
Я пробовал комбинированные фильтры, такие как:
(platform == "windows" && version == "1.1") || (platform == "windows" && version == "1.2") ...
Но со многими комбинациями они становятся очень длинными и сложными. Я хотел бы иметь возможность просто прочитать список разрешенных платформ для каждой версии из файла. Фильтр тогда будет простым поиском в стиле карты на основе содержимого файла. Например, «вернуть версии [версия] .contains (платформа)».
Я подумал об использовании однострочного комбинированного фильтра для чтения файла как скрипта Groovy и его запуска. Не могу понять, что один вкладыш.
В этом ответе предлагалось ввести в качестве фильтра параметр «оценивать (paramName)». Поместите более сложный скрипт Groovy в это «paramName» и используйте его для чтения файла сопоставления и т. Д. Я не знаю, как я могу вставить такой параметр для оценки.
Плагин Groovy Execution Strategy похоже, что он может работать. Но я не совсем уверен, как написать это с этим. Как мне объединить мои переменные и файл сопоставления в этом плагине и что вернуть?
В конечном счете, я бы предпочел иметь возможность использовать поддержку комбинированного фильтра по умолчанию, поэтому я также мог бы повторно использовать его в плагине Matrix Comb комбинаций в качестве ярлыка выбора (он поддерживает комбинированный фильтр).
Так что предпочитайте простой комбинированный фильтр, но при необходимости можете использовать другие подходы. Цель состоит в том, чтобы отфильтровать разрешенные комбинации.
Есть идеи?