Здравствуйте!
Настраиваю CI для Selenium-тестов на Jenkins. Исходный код загружается с git-репозитория, собирается через maven. Все работает хорошо.
НО! Теперь я хочу запускать много тестов на jenkins, под каждый тест сделаю отдельную джобу, но git-проект хочу сделать общий для всех тестов, то есть состоящий из папок-тестов. Вопрос: как из этого репозитория в отдельную джобу загружать только одну нужную папку из проекта, а не сразу весь проект?
а почему бы просто не распараллелить тесты и не создавать под каждый тест джобу?
Допустим, распараллелим тесты. Добавим общий репозиторий через git plugin. Тогда как можно будет производить запуск мавен в конкретных папках-тестах? Или можно просто прописывать команду cd path перед сборкой мавен?
Вы хотите запускать отдельно каждую папку с тестами за раз? Или вы хотите запускать все тесты вместе но отдельно? Если хотите запускать только каждую папку с тестами за раз, то просто в pom.xml сделайте для каждой папки с тестами свой профиль и в нем прописывать xml файл с запуском каждой папки тестов и потом при запуске в CI просто прописываете определенный профиль для запуска и все. А если запускать все тесты одновременно, то просто распараллелить, в testng xml файле для запуска тестов в каждом тесте вы укажите пакеты которые хотите запускать в отдельно потоке, а по чем параллелить укажите по тестам.
Если расписать грубо, структура git-репозитория такая:
Project
----Folder1
--------src
--------pom.xml
----Folder2
--------src
--------pom.xml
----Folder3
--------src
--------pom.xml
Цель: запускать их в отдельных джобах так, чтобы дженкинс не копировал в директорию каждой джобы весь репозиторий, а только одну папку с нужным тестом.
Можно и в одной джобе параллельно, но пока лучше сделать в отдельных джобах.
Так у вас же еще есть и основной POM.xml файл, который относится ко всему проекту в котором прописаны модули выше описанные ваши остальные pom файлы, так что походу разделить так как вы хотите не получится. Либо вам придется бить ваш проект на несколько проектов.
Then i guess profies is a way to go
Если модули независимые, то git plugin можно настроить на sparse checkouts. Это позволит тянуть репу кусками. Но тогда сам путь нужно будет параметризовать и запускать N параллельных тасков с разными путями. Можно и в пайплайне такое реализовать, в целом.
Если же в проекте присутствует и рутовый pom с какими-либо инструкциями, от которых зависят все остальные модули, то все это дело просто не соберется без рута.
можно прописывать. maven не обязательно вызывать через jenkins plugin.
тогда просто
cd %path%
mvn clean test
второй вариант - даже если запускать через maven plugin путь к pom.xml можно указывать в настройках. Таким образом, для разных jobs разные настройки.
Ну и как вам советовали выше plugins тоже решат задачу.
Всем большое спасибо за ответы!
Если какие-то ответы вам оказались полезными, или решили вашу проблему, - жмите соответствующие кнопки: