2014-12-15 3 views
0

У меня есть ситуация, когда цепочка Java-проектов в SVN должна быть построена для непрерывной интеграции. Проекты могут существовать в нескольких филиалах, и я хочу выполнить сборку CI для всех из них. Тем не менее, я бы предпочел не иметь другого проекта Jenkins для каждой комбинации проектов Java/SVN. Я сделал, чтобы создать проекты Jenkins, которые принимают ветвь SVN в качестве параметра, и настроить цепочку зависимостей проекта, передав параметр ветвления. (Я использую Ivy для этого проекта, а не Maven, поэтому у меня нет плагина, чтобы сделать это для меня.) Я установил задание для запуска цепочки для каждой ветви, которая определяет параметр ветвления и запускается автоматически несколько раз в день ,Опрос многих проектов SVN в одном задании Jenkins CI

PROS: Это позволяет мне создать единственный проект запуска Jenkins для каждой ветки, а не целую цепочку проектов.

CONS: Построение происходит по расписанию, а не в результате опроса SVN. Это означает, что все ветви построены несколько раз в день, даже если в этой ветке изменений не было.

То, что я хотел бы добиться в идеале, - это периодически проводить опрос проекта ВСЕ проекты в цепочке и строить цепочку, если есть какие-либо изменения. Есть ли способ сделать это? Было бы так же просто, как указать все местоположения проекта в проекте kickoff (используя параметр ветвления), а затем указать опрос как триггер сборки?

+0

Если у вас есть доступ к SVN, вы можете настроить перехват Post Commit, который заставит SVN предоставить всю информацию, такую ​​как ветка, на которой выполняется фиксация получилось. Затем вы можете использовать его для выполнения задания. http://stackoverflow.com/questions/12794568/how-to-configure-git-post-commit-hook – NotAgain

+0

К сожалению, у меня нет доступа к серверу Jenkins в этой корпоративной среде, чтобы настроить поддержку post commit крюк. В любом случае, спасибо за хорошее предложение. – cneff

ответ

1

Если я правильно понимаю: вы хотите опросить несколько мест SVN из своей работы «kickoff», но вы не хотите, чтобы ваша «стартовая» работа действительно проверяла все эти местоположения SVN?

Вы можете настроить «стартовую» работу, дать ему все возможные места SVN (или местоположение верхнего уровня, такие как /branches/, который будет иметь все ветви под ним), и установить глубину оформления заказа на пустой. Затем настройте опрос SCM на этом задании. Он будет опросить все местоположения SVN, но на самом деле не будет выполнять длительную проверку. После того, как будут обнаружены изменения SCM, начнется ваше стартовое задание и запустят остальную часть вашей цепи.

+0

Это работало довольно хорошо, как только я понял, что каждое место SVN необходимо проверить в уникальном подкаталоге в моей рабочей области. До этого он всегда видел изменения, поскольку данные о проверке первых мест не совпадают с данными последнего местоположения. – cneff

Смежные вопросы