Вы можете использовать Subversion Plugin , чтобы опросить изменения SVN и запустить задание, которое ничего не делает в частности.Давайте назовем это YourPollingJob .Затем вызовите Jenkins API через http следующим образом:
http://[jenkins_server]/api/xml?depth=2&xpath=/hudson/job[name='YourPollingJob']/build[id='BUILD_ID']/changeSet
, где BUILD_ID
- это фактический идентификатор сборки только что выполненного задания (обычный формат - что-то вроде 2012-02-21_16-15-49
).Изучите результат.Обратите внимание, что вся информация о файлах, которые изменились со времени предыдущей сборки, есть - вам просто нужно разобрать ее.
Так что теперь вы можете делать следующее: YourPollingJob будет вызывать другуюзадание - давайте назовем его CopyJob - и передадим ему BUILD_ID
в качестве параметра (через Параметризованный пусковой модуль триггера ; обязательно вызовем CopyJob какшаг после сборки, не как шаг сборки). CopyJob затем запросит Jenkins через http (как указано выше, лучший способ сделать это через wget
), проанализирует результаты и сделает копию.
Вы можете сделать все этов одной работе, но это немного сложнее и сложнее в отладке.
Также, возможно, целесообразно копировать весь репозиторий один раз в день (ночью).