Непрерывное развертывание с Jenkins и PHP

Я уверен, что ответы на этот вопрос есть во всем stackoverflow, но я не смог найти ничего конкретного.

У меня есть проект PHP, который я пересматриваю. Он работает на коробке RHEL5. У меня SVN на том же ящике.

Из любопытства я недавно добавил Jenkins на машину и получил php-шаблон jenkins по адресу...

http://jenkins-php.org/

Было немного поиграться с настройкой, но у меня более или менее все это работает и я делаю сборки Continuous Inspection, когда что-то фиксируется в SVN.

Теперь я хочу, чтобы Jenkins скопировал мои обновленные файлы на сервер после завершения сборки.

Я запускаю простую настройку LAMP и в идеале хотел бы копировать только те файлы, которые действительно изменились.

Должен ли я просто использовать ANT и синхронизацию? В настоящее время файлы находятся в том же ящике, что и сервер, но это может измениться, поэтому мне нужно будет синхронизировать эти файлы с несколькими удаленными ящиками.

Спасибо


person fatlog    schedule 04.11.2013    source источник


Ответы (3)


Проверьте это — Copy Artifact Plugin и переменные окружения задания. Теперь установите 2 задания — 1 на исходной машине и 1 на целевом сервере (сделайте его подчиненным). Используйте подключаемый модуль для копирования необходимых артефактов с помощью переменных среды.

person Pulak Agrawal    schedule 04.11.2013

У вас есть свой проект (не jenkins, а с настройкой LAMP) под SVN? Если да, я бы порекомендовал создать отдельную работу в Jenkins, которая просто выполнит svn up, и вы можете связать ее с работой jenkins так, как вы запускаете свою основную работу, и если сборка в порядке, jenkins автоматически запускает работу для обновления вашего проекта .

person Maksym Karazieiev    schedule 04.11.2013
comment
Да, фактический источник проекта находится в SVN. Я думал о том, чтобы иметь отдельную работу по развертыванию в Дженкинсе. Но как выполнить развертывание? И, возможно, на удаленных машинах - person fatlog; 04.11.2013

Для копирования на другие серверы взгляните на плагины для публикации.

Настроить сервер и правила очень просто. Плохо то, что вы не можете настроить копирование только новых файлов для текущей сборки, что означает, что весь проект загружается при каждой сборке.

Если ваш проект слишком большой, другое решение — использовать rsync в качестве действия после сборки.

person Georgi    schedule 04.11.2013
comment
Я посмотрю этот плагин. В идеале я хотел бы загружать только то, что изменилось, но я полагаю, что мог бы просто запланировать загрузку, может быть, в полночь... - person fatlog; 04.11.2013