Jenkins Git Плагин не тянет последние изменения перед тем, как строить работу

Я работаю с Jenkins CI и пытаюсь правильно настроить свои задания на использование git.

У меня есть плагин git, установленный и настроенный для одного из моих заданий. Когда я создаю задание, я ожидаю, что он вытащит последние изменения для ветки, которую я укажу, а затем продолжу с остальной частью процесса сборки (например, модульные тесты и т.д.).

Когда я смотрю на вывод консоли, я вижу

> git fetch --tags --progress ssh://[email protected]/Util +refs/heads/*:refs/remotes/origin/*
 > git rev-parse origin/some_branch^{commit}
Checking out Revision <latest_SHA1> (origin/some_branch)
 > git config core.sparsecheckout
 > git checkout -f <latest_SHA1>
 > git rev-list <latest_SHA1>

Я вижу, что плагин извлекает и проверяет правильный хеш фиксации, но когда запускаются тесты, кажется, что репо вообще не обновлялось. Если я пойду в хранилище в Дженкинсе, я вижу, что последние изменения никогда не тянутся.

Разве он не должен тянуть, прежде чем он попытается построить?

У меня есть git 1.8.5, установленный на моей машине Jenkins, которая является рекомендуемой версией. https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin

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

Ответы

Ответ 1

Я считаю, что Дженкинс вытягивает изменения и строит в своей собственной директории tmp. Таким образом, ваш каталог репозитория не получает обновления, хотя Дженкинс правильно строит новый код в своей собственной песочнице.

Моим решением было добавить шаг "git pull" в моем процессе сборки следующим образом:

Когда новый коммит будет передан моему репозиторию GitHub:
1. Создайте проект

В случае успеха выполните следующие шаги после сборки:
1. Выполнить оболочку:

cd /your/repo/directory/
git pull

Очевидно, вы можете изменить команду "git pull", чтобы делать все, что вам нужно, если "pull" не работает для вас.

Ответ 2

Относится к сценарию, в котором рабочее пространство не очищается, используется:

Ответ 3

Я знаю, что вопрос старый, но есть и другой способ сделать это. В разделе Сборка выберите " Удалить рабочее пространство до начала сборки"

Смотрите снимок экрана ниже,

введите описание изображения здесь

Это будет очищать рабочее пространство каждый раз, и, следовательно, вы получите обновленный код.

Ответ 4

Попытайтесь вставить свой путь ветки с этим форматом:

refs/remotes/<remoteRepoName>/<branchName>

Tracks/checks out the specified branch.
E.g. refs/remotes/origin/master