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
Ответ 5
Просто отметьте флажок на изображении.. ура Эта вкладка спасла меня от головной боли