Как запустить git diff-tree против master ветки в jenkins? - PullRequest
0 голосов
/ 18 января 2019

Я бы хотел видеть, какие файлы изменились между моей текущей веткой и главной веткой во время сборки jenkins.

в моем jenkinsfile у меня есть код ниже.

git diff-tree -r --no-commit-id --name-only ${env.GIT_COMMIT} origin/master

но я получаю ошибку ниже

fatal: неоднозначный аргумент 'master': неизвестная ревизия или путь не в рабочем дереве.

Буду признателен за любую помощь ... было бы замечательно, если бы кто-то мог сказать мне, что я делаю неправильно, или разработать альтернативное решение, которое даст мне пути к файлам, которые изменились.

Кстати, приведенная выше команда работает локально, но не в jenkins.

Ответы [ 2 ]

0 голосов
/ 21 января 2019

Я наконец нашел решение для этого. @vonc указал мне верное направление, но предоставленная им ссылка не имела никакого смысла.

Вот ссылка, которая мне помогла.

https://issues.jenkins -ci.org / просмотр / JENKINS-45666? Страница = com.atlassian.jira.plugin.system.issuetabpanels% 3Achangehistory-tabpanel

Вы должны добавить refspec в настройках jenkins для проекта. Если вы используете GitHub организации, вы должны подать заявку в настройках организации, так как вы не можете изменить конкретные настройки репозитория. Во всяком случае, это работает для меня.

Добавьте это как refspec.

+refs/heads/master:refs/remotes/@{remote}/master
0 голосов
/ 19 января 2019

Это должно означать, что в рабочей области Jenkins не извлечена ветвь master.
Это типично для клонированного репо, чья ветка по умолчанию равна , а не master.

Обязательно сделайте предварительный шаг в jenkins:

git checkout -b master origin/master

Тогда попробуйте еще раз ваш дифференциал.

...