Jenkins @ Library разрешение сбой из-за git.exe не существует, но где? - PullRequest
0 голосов
/ 17 октября 2019

У меня есть эта команда в верхней части моего файла конвейера, и моя сборка сразу не удалась в Jenkins при попытке ее решить:

@Library('MyLibrary') _

pipeline{
...

У меня также есть эта настройка библиотеки в моем глобальном конфиге jenkins. Трипл проверил это.

Журнал Дженкинса находится ниже ... в интернете написано, что это происходит, когда git.exe неправильно настроен или не найден. У нас на 100% проверено, git установлен на всех рабах. Тем не менее, я подозреваю, что этот сбойный git-клон работает где-то еще, поскольку конвейер еще официально не запущен (мы не видим RUNNING ON: бла в журнале).

Итак ... на мастере? У нас мастер установлен на 0 исполнителей, и git там не установлен.

Эта проблема решается так же легко, как и установка git на мастер? Или есть какое-то другое волшебное место, где эти @Library включают в себя клонирование?

Вот вывод журнала Дженкинса, имена которого изменены для защиты невинных:

Started by user Me
15:28:23 Connecting to my github url
Obtained Jenkinsfile from blah
Running in Durability level: MAX_SURVIVABILITY
Loading library MyLibrary@master
Examining <my github repo>
Attempting to resolve master as a branch
Resolved master as branch master at revision blah
No credentials specified
Cloning the remote Git repository
Cloning with configured refspecs honoured and without tags
Cloning repository <my repo url>.git
 > git init /home/afolder/jenkins/workspace/<git repo name>@libs/MyLibrary # timeout=10
ERROR: Error cloning remote repo 'origin'
hudson.plugins.git.GitException: Could not init /home/afolder/jenkins/workspace/<git repo name>@libs/MyLibrary
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$5.execute(CliGitAPIImpl.java:813)
...
Caused by: java.io.IOException: Cannot run program "git" (in directory 
"/home/afolder/jenkins/workspace/<git repo name>@libs/MyLibrary"): 
error=2, No such file or directory

1 Ответ

1 голос
/ 18 октября 2019

Да, по умолчанию он будет работать на мастере Jenkins.

Пожалуйста, перейдите по ссылке для получения дополнительной информации info .

Вы можете прочитать файл библиотеки и передать файл writeFile шаг конвейера

writeFile(file:"foo.groovy", text: libraryResource("bar.groovy"))
"groovy foo.groovy"
...