Jenkins проведет опрос вашего исходного хранилища до одного раза в минуту, чтобы узнать, нужно ли что-то строить.
Когда мы использовали CVS, я использовал пост-фиксацию для принудительной сборки Subversion, потому что опрос репозитория CVS, чтобы увидеть, произошло ли изменение, было длительной и интенсивной с процессором. Если вы выполняете дюжину или более проектов в Jenkins с помощью CVS, вы замедлите Jenkins и ваше CVS-репо на сканирование. Использование триггера post-commit было единственным способом. Тем не менее, одна из проблем, с которыми мы столкнулись, заключается в том, что если Дженкинс снизился, это не приведет к отсутствующим сборкам.
Когда мы переехали в Subversion, я просто задал Дженкинсу опрос наших репозиториев Subversion каждую минуту. Поиск того, произошло ли изменение в Subversion, довольно быстро и занимает немного ресурсов. Если сервер Jenkins не работает, Дженкинс немедленно опросит различные проекты Subversion и начнет строить практически там, где он остановился.
Есть несколько минусов с этим поведением, и причиной, почему некоторые сайты не позволяют Дженкинс опрашивать репозиторий:
- Это может занять до 59 секунд для сборки произойдет. Если сборка занимает две минуты, разработчик может ждать на 50% дольше, чтобы узнать, было ли их изменение успешным.
- Если два разработчика совершают фиксацию в течение одной минуты, оба их изменения будут построены. Если произойдет сбой, мы не сможем сказать, какое изменение вызвало проблему.
Для меня это незначительные проблемы, и мне нравится тот факт, что Дженкинс позаботится о себе, если я не буду беспокоиться об этом.Однако, если вам нужно создать триггер Subversion в Jenkins, вы можете сделать это с помощью коммита post-commit, выдающего команду сборки, но, как вы выяснили, если Дженкинс не работает, он не узнает, что он должен делать сборку ,
Один из способов сделать это, чтобы Дженкинс делал опрос и использовал крюк после фиксации, чтобы вызвать сборку Дженкинса. Там есть file system SCM plugin, который будет опробовать файл или каталог, а триггер сработает. Существует также command line interface Дженкинсу. Вы можете объединить их в свой крюк после фиксации.
Используйте интерфейс командной строки, чтобы увидеть, работает ли Jenkins. Если это так, вы можете запустить сборку через URL-адрес, как обычно. Если Jenkins не работает и обновляется, обновите файл опроса.
Jenkins может опробовать этот файл каждые 5 минут или около того (не нужно запускать триггер), и если он обнаружит, что этот файл был изменен, он автоматически выполнит новую сборку. Таким образом, если Дженкинс не работает, вы можете использовать механизм опроса в качестве резервной копии.
Это может быть решение, но как :-)? – clausfod
Спасибо за ваш ответ Питер. Если возможно, мы не будем решать, где нам не нужно кодировать одну строку самостоятельно, поэтому способ плагина таков: -D Я посмотрю на плагин, который вы упомянули. – clausfod