Как запустить отдельную работу в jenkins с хранилищем github - PullRequest
1 голос
/ 21 февраля 2012

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

Я исследовал подмодуль git и поддерево git, кажется, что все они немного сложны, есть ли более простой способ архивировать это?

Ответы [ 3 ]

1 голос
/ 29 марта 2012

Я создал плагин Jenkins для достижения этой цели, он здесь https://github.com/jameswangz/github-shared-repository.

1 голос
/ 26 сентября 2016

В настоящее время вы можете использовать обычный плагин Git от Jenkins: вы можете указать, какие каталоги следует отслеживать и начинать выполнение задания, а какие игнорировать. Это работает лучше всего, если у вас есть задание на сборку для каждого проекта / модуля в хранилище, и вы хотите вызывать сборку только при изменении соответствующих каталогов (например, самого каталога модуля и любых общих / общих каталогов модуля). ).

Чтобы понять суть дела, у нас нет заданий на сборку для общего модуля, но, естественно, у нас есть задания для каждого модуля. Поэтому мы установили плагин для просмотра только каталога модуля и каталога commons: таким образом, проект будет перестраиваться при каждой соответствующей фиксации в каталоге, а также при фиксации в каталоге commons.

1 голос
/ 21 февраля 2012

Git сообщит вам эту информацию с помощью git log (см. Параметр --exit-code, который подразумевается --quiet).Я не знаю, даст ли плагин Jenkins Git такую ​​утонченность, но вы можете легко сделать это с помощью простого сценария оболочки.

Чтобы проверить, изменился ли каталог dir между версиями A и B,

if git log --quiet A..B -- dir ; then
    # there are no changes in "dir" between rev A and B
else
    # there are changes
fi
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...