2016-12-06 7 views
3

Мы используем jgit для проекта git для проверки и завершения потока jenkins. Она проходит сборку снимки, но не для построения релиза с ниже сообщением об ошибке:Проблема выпуска Jenkins с jgit

Building on master in workspace /home/jenkins2/jenkins/jobs/Git-end_to_end_4.0/workspace 
Fetching changes from the remote Git repository 
Checking out Revision 302b3bc2190db18b4661407ec67918e4f8ca65fc (refs/remotes/lighthouse/master) 
Property '-Dm3plugin.lib' is already part of MAVEN_OPTS. This is usually a leftover of previous build which was forcibly stopped. Replacing the value with an updated one. Please remove it from the job configuration. 
[RELEASE] Release build triggered 
> jgit rev-parse --verify HEAD # timeout=10 
ERROR: Failed to parse POMs 
java.io.IOException: Failed retrieving current commit hash: Error performing command: jgit rev-parse --verify HEAD 
    at org.jfrog.hudson.release.scm.git.GitManager$CurrentCommitCallable.invoke(GitManager.java:194) 
    at org.jfrog.hudson.release.scm.git.GitManager$CurrentCommitCallable.invoke(GitManager.java:168) 
    at hudson.FilePath.act(FilePath.java:914) 
    at hudson.FilePath.act(FilePath.java:887) 
    at org.jfrog.hudson.release.scm.git.GitManager.getCurrentCommitHash(GitManager.java:52) 
    at org.jfrog.hudson.release.scm.git.GitCoordinator.prepare(GitCoordinator.java:74) 
    at org.jfrog.hudson.release.maven.MavenReleaseWrapper.setUp(MavenReleaseWrapper.java:131) 
    at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.doRun(MavenModuleSetBuild.java:643) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:585) 
    at hudson.model.Run.execute(Run.java:1676) 
    at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:519) 
    at hudson.model.ResourceController.execute(ResourceController.java:88) 
    at hudson.model.Executor.run(Executor.java:231) 

Для справки, ниже приведена моя версии детали:

Дженкинс версия: Дженкинс вер. 1,554

Git клиент плагин: 1.17.1

Git плагин: 2.4.0

Я посетил несколько страниц и из StackOverflow, но не получил надлежащего ответа , Получу любое дальнейшее предложение.

+0

Я думаю, что класс GitManager не предоставляет фактический результат выполнения команды jgit, без этого будет трудно сказать, что на самом деле не удается. Можете ли вы запустить команду jgit вручную в рабочем пространстве jenkins? – centic

+1

Просьба указать ваши комментарии, если вы отклоняете вопрос! – dildeepak

+0

Лучший вариант для вас, чтобы добиться прогресса в этом вопросе, чтобы ответить на вопрос в моем предыдущем комментарии, вопрос, очевидно, не имеет достаточной информации, пока кто-нибудь не предложит решение ... – centic

ответ

1

Из вашего вывода на консоль видно, что ваш Jgit не может получить SHA последней фиксации из клонированного репозитория, присутствующего в вашей рабочей области. Последняя фиксация Hash требуется для разбора файла pom для сборки релиза.

Одна из причин (вряд ли, но все же, если ур, использующий довольно старый Jgit), может заключаться в том, что версия Jgit, которую вы настроили в своем Jenkins, не поддерживает команду для получения SHA текущей фиксации ((поскольку Jgit все еще находится в разработке фаза и еще не полная замена git-cli, и поэтому jenkins git-client плагин по умолчанию использует git-cli, а не Jgit, хотя последний имеет свой собственный набор преимуществ ... Для получения дополнительной информации см. официальные документы Jgit))

Вторая причина (наиболее вероятная) может заключаться в том, что вы не используете правильную комбинацию версии git plugin, версии плагина git-client и версии Jenkins. Все основные инструменты DevOps одинаково известны для связанных с плагинами вопросов, поскольку они предназначены для использования. И поверьте мне ... порой это становится кошмаром для инженера DevOps для решения проблемы с плагином.

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

Для справки: - Я использую Jgit в своем Jenkins 1.596.2, с git-client plugin 1.18.0, git plugin 2.4.0 , и он работает так же гладко, как шелк как для моментального снимка, так и для выпуска сборки. Надеюсь, это поможет ..:)

+0

Спасибо за очень длинную историю, хотя я не нашел много соответствующих шагов или команд из этого :) BTW, по просьбе, я отредактировал свой вопрос с информацией о плагинах. – dildeepak

+0

Кроме того, ответы также могут быть пропущены, если не дать простой, короткий и ясный ответ :) – dildeepak

1

После стольких дней головы нуля, и даже после того, как положить Баунти, я не получил надлежащую помощь для Jgit.

Я изменил с Jgit на GIT плагин, и он решил мою проблему.