Мигрираме от CruiseControl.NET към Jenkins само за да сме в синхрон с партньор, така че да нямаме два различни CI скрипта. Опитваме се да настроим Jenkins да прави нещо подобно на това, което правехме CruiseControl, а именно централизиран сървър да извиква проекти (задачи в jenkins) на машини за отдалечено изграждане.
Имаме множество машини за изграждане, свързани с един проект, така че когато изградим проекта от централизирания CI сървър, той ще извика проектите на отдалечените CI сървъри. Отдалечените CI сървъри биха изтеглили версията от централизирания CI сървърен проект.
В контрола на CruiseCruise настройваме проект, който ще направи forceBuild
на отдалечените проекти. Проектите на компилиращите машини използваха remoteProjectLabeller
за извличане на номера на версията, така че винаги да са синхронизирани.
За да извлечете номера на основната компилация:
<labeller type="remoteProjectLabeller">
<project>MainProject</project>
<serverUri>tcp://central-server:21234/CruiseManager.rem</serverUri>
</labeller>
За да извикате отдалечените проекти:
<forcebuild>
<project>RemoteBuildMachineA</project>
<serverUri>tcp://remote-server:21234/CruiseManager.rem</serverUri>
<integrationStatus>Success</integrationStatus>
</forcebuild>
Досега в jenkins съм настроил вторичен сървър като подчинен, използвайки java web start, но не знам как бих накарал главния jenkins да извика настройката на проекти на подчинените.
Мога ли да настроя Jenkins да извиква проекти (задания) на подчинени устройства?
Мога ли да накарам подчинените устройства да изтеглят номера на версията от главния?
РЕДАКТИРАНЕ -
Нека добавя малко повече информация.
- Главната и подчинената машина за отдалечено изграждане работят с Windows.
- Накарахме централния главен CruiseControl да стартира отдалечените проекти по едно и също време, така че те работят едновременно и бихме искали да имаме същото нещо с jenkins, ако е възможно.