Многопрофильный конвейер Jenkins: команда git-lfs не найдена на узле Mac - PullRequest
0 голосов
/ 22 сентября 2019

У меня есть многоотраслевой конвейер Jenkins, настроенный для запуска тестов и сканирования sonarqube на узле Mac 10.14, настроенном с помощью javaws.При оформлении заказа происходит сбой во время проверки scm с помощью:

[Pipeline] End of Pipeline
[Bitbucket] Notifying commit build result
[Bitbucket] Build result notified
hudson.plugins.git.GitException: Command "/usr/local/bin/git checkout -f 7dca678ce3a4a8f93fe8ed4bb4920db40c417839" returned status code 128:
stdout: 
stderr: git-lfs filter-process: git-lfs: command not found
fatal: the remote end hung up unexpectedly

    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2172)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$1000(CliGitAPIImpl.java:78)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$9.execute(CliGitAPIImpl.java:2453)
Also:   hudson.remoting.Channel$CallSiteStackTrace: Remote call to JNLP4-connect connection from platform-e2e-mac.mynetwork.com/10.1.4.49:49175
        at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1741)
        at hudson.remoting.UserRequest$ExceptionResponse.retrieve(UserRequest.java:356)
        at hudson.remoting.Channel.call(Channel.java:955)
        at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.execute(RemoteGitImpl.java:146)
        at sun.reflect.GeneratedMethodAccessor761.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.invoke(RemoteGitImpl.java:132)
        at com.sun.proxy.$Proxy102.execute(Unknown Source)
        at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1242)
        at org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:124)
        at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:93)
        at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:80)
        at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
Caused: hudson.plugins.git.GitException: Could not checkout AUTH-58-pipeline with start point 7dca678ce3a4a8f93fe8ed4bb4920db40c417839
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$9.execute(CliGitAPIImpl.java:2493)
    at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:153)
    at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:146)
    at hudson.remoting.UserRequest.perform(UserRequest.java:211)
    at hudson.remoting.UserRequest.perform(UserRequest.java:54)
    at hudson.remoting.Request$2.run(Request.java:369)
    at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at hudson.remoting.Engine$1.lambda$newThread$0(Engine.java:97)
    at java.lang.Thread.run(Thread.java:748)
Finished: FAILURE

Я пытался:

  1. установить и инициализировать git-lfs через Homebrew.
  2. удалилhomebrew версия и установил git-lfs вручную, но поместил двоичный файл git-lfs в / usr / local / bin и инициализировал его с помощью git lfs install.(который входит в $ PATH моего узла)
  3. установил git сам через homebrew (вместо инструментов apple dev) и настроил его как инструмент git по умолчанию в конфигурации TOOL узла (подтвердил, что он используется)
  4. Инициализированы git-lfs на системном и локальном уровне.

Я нашел несколько статей, но не решил проблему.Он просто не может найти git-lfs во время проверки.

Так как я не могу переместить git-lfs в /usr/bin из-за Защиты целостности системы OSX, есть ли какой-то шаг или конфигурация, которые мне здесь не хватает?

Дайте мне знать, могу ли я предоставить более подробную информацию.

1 Ответ

0 голосов
/ 23 сентября 2019

Решено это с помощью другого потока в проблемах Дженкинса: https://issues.jenkins -ci.org / browse / JENKINS-52857 (В частности, комментарии Джеффа Меадора и Ларса Билке)

Для работывокруг этого я установил git и git-lfs с помощью homebrew.Затем я сделал git --exec-path, чтобы определить установленный путь к версии git, которую я использовал, которая для меня была /usr/local/Cellar/git/2.23.0_1/libexec/git-core/git.

. Я скопировал бинарный файл git-lfs из его местоположения Cellar и вПапка git-core, упомянутая выше, а затем связала ее с этим местоположением с помощью: ln -s /usr/local/Cellar/git/2.23.0_1/libexec/git-core/git-lfs /usr/local/bin/git-lfs.После этого я перезапустил сборку и больше не получил сообщение об ошибке, указывающее, что git-lfs не найден.

Надеюсь, это кому-нибудь поможет.

...