Jenkins CI: как запускать сборки на svn commit
какие плагины и функции плагинов мне нужно установить, чтобы заставить мою работу Дженкинса запускать сборку в любое время, когда код привязан к проекту SVN?
Я установил как стандартный плагин SVN, так и плагин тегов SVN, но я не вижу никаких новых функций, которые позволяют настраивать триггер.
4 ответа:
есть два способа сделать это:
Я рекомендую первый вариант изначально, из-за его простоты реализации. Как только вы созреете в своих процессах сборки, переключитесь на второй.
опросите репозиторий, чтобы узнать, произошли ли изменения. Это может "пропустить" фиксацию, если два фиксации входят в один и тот же интервал опроса. описание того, как это сделать здесь, обратите внимание на четвертый скриншот, где вы настраиваете на задание " построить триггер " на основе опроса репозитория (с конфигурацией crontab-like).
сконфигурируйте свой репозиторий, чтобы иметь крюк после фиксации, который уведомляет Дженкинса о том, что сборка должна начаться. описание того, как это сделать здесь, в разделе "крючки после фиксации"
функция тега SVN не является частью опроса, она является частью продвижения текущей "головы" исходного кода к тегу, чтобы сделать снимок сборки. Это позволяет см. Jenkins buid #32 как SVN tag/tags / build-32 (или что-то подобное).
Я сделал инструмент, используя Python с некоторым bash, чтобы вызвать сборку Дженкинса. В основном вам нужно собрать эти два значения из post-commit, когда фиксация попадает на сервер SVN:
REPOS="" REV=""
затем вы используете "svnlook dirs-changed $1-r $2", чтобы получить путь, который только что зафиксирован. Затем вы можете проверить, какой репозиторий вы хотите построить. Представьте, что у вас есть сотни тысяч проектов. Вы не можете проверить все хранилище, верно?
вы можете проверить мой скрипт из GitHub.
вам нужно требовать только один плагин, который является плагином Subversion.
тогда просто зайдите в Jenkins → job_name → Создать Триггер раздел → (i) запуск сборки удаленно (т. е. из скриптов) Маркер проверки подлинности: Token_name
перейдите в каталог крючков сервера SVN, а затем после запуска ниже команды:
cp post-commit.tmpl post-commit
chmod 777 post-commit
chown -R www-data:www-data post-commit
vi post-commit
Примечание: все строки должны быть прокомментированы добавить нижеприведенную строку наконец
синтаксис (для пользователей Linux):
/usr/bin/curl http://username:API_token@localhost:8081/job/job_name/build?token=Token_name
синтаксис (для пользователей Windows):
C:/curl_for_win/curl http://username:API_token@localhost:8081/job/job_name/build?token=Token_name