Я унаследовал систему, которая использует Jenkins Job DSL для создания заданий для всех наших проектов, у меня мало опыта настройки Jenkins и совсем нет опыта работы с Jenkins Job DSL, поэтому, пожалуйста, будьте осторожны.
Некоторые из этих проектов являются проектами Gradle. Существует функция createGradleJob(), которая создает задание gradle. В этой функции мы строим список задач для задания в виде строки на основе некоторых особенностей проекта. например если он создается из основной ветки, мы добавляем задачу «публикации». Все эти условные задачи в настоящее время добавляются на основе имени ветки проектов или наличия или отсутствия определенных файлов в репозитории проектов.
Теперь я хотел бы добавить новую задачу в этот список задач в зависимости от содержимого некоторых из этих файлов. В частности, если в файле проекта build.gradle обнаружены определенные ключевые слова, то определенные задачи необходимо добавить в список задач.
Итак, есть ли в Jenkins Job DSL способ проверить содержимое файла и использовать его в качестве условного выражения?
Я обнаружил, что могу выполнять произвольные команды оболочки с помощью функции shell, поэтому я подумал, что могу просто найти файл, но я не могу найти документацию для этой функции, поэтому я не понимаю как я могу получить доступ к выводу команд, чтобы использовать их в условном выражении.
Я нашел функцию textFinder, но она, по-видимому, позволяет вам завершить сборку (или пометить ее как нестабильную) только в результате обнаружения или невозможности найти текст, а не использовать результат в качестве условное выражение.