Вы можете использовать generic-webhook-plugin ,
Например, веб-хиты GitHub в Jenkins используются для запуска сборки всякий раз, когда разработчик передает что-то в ветку, в каждом веб-крюке мыиметь следующую информацию
git repository name
branch which was changed
commit id
commit message
commit author
etc ...
Чтобы избежать зацикливания
- сохранить идентификатор коммитов Jenkins в файл и добавить файл в git игнорировать
- считывание идентификатора удаленного коммита с помощью pushуниверсальный триггер webhook
- сравнение идентификатора локальной файловой фиксации с идентификатором удаленной фиксации
- Если то же самое, это означает, что коммит от Jenkins, если нет, это значит, что коммит не от Jenkins
Вот фрагмент кода, который может помочь или измениться соответствующим образом, он не создаст вид
#!/bin/bash
webhook_commit_id=$commit
commit_by_jenkins=commit_by_jenkins.txt
if [ ! -f $commit_by_jenkins ]
then
echo "creating local file name commit_by_jenkins.txt, please add this file to git ignore"
touch commit_by_jenkins.txt
fi
jenkins_commit=`cat commit_by_jenkins.txt`
if [ "${webhook_commit_id}" == "${jenkins_commit}" ]; then
echo "commit by jekins server, ignoring commit"
else
echo "commiting code from jenkins servver"
git add -A && git commit -m "commit by jenkins server" && git rev-parse HEAD > commit_by_jenkins.txt
fi