Почему запрос на загрузку Github основывается на главном узле Jenkins, а не на таких агентах, как ветви git? - PullRequest
0 голосов
/ 19 апреля 2019

Я использую плагин Github Branch Source для управления нашей организацией Github в Дженкинсе. Стратегии сборки, которые я включил:

  • запросы на изменение
  • именованные ветви - установить ветви, которые я хочу построить

Именованные ветви хорошо строятся на узлах агента, но запросы на извлечение, кажется, проверяются и начинают строить на главном узле. У меня есть исполнители главного узла, установленные на ноль и включенные «только создавать задания с выражениями меток, соответствующими этому узлу». Вот журнал ошибок сборки:

Checking out git https://github.com/REDACTED/REDACTED.git into /var/lib/jenkins/workspace/REDACTED_PR-29@script to read Jenkinsfile
using credential ABCD-123-456
 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url https://github.com/REDACTED/REDACTED.git # timeout=10
Fetching upstream changes from https://github.com/REDACTED/REDACTED.git
 > git --version # timeout=10
using GIT_ASKPASS to set credentials 
 > git fetch --tags --progress https://github.com/REDACTED/REDACTED.git +refs/pull/29/head:refs/remotes/origin/PR-29 +refs/heads/develop:refs/remotes/origin/develop
Merging remotes/origin/develop commit dfa0400f86bf43a561234769c1012309726321b6f3d0 into PR head commit cc7f9c365b32d0db25f423417dc9ba26427fe47
Enabling Git LFS pull
 > git config core.sparsecheckout # timeout=10
 > git checkout -f cc7f9c365b32d0db25f423417dc9ba26427fe47
 > git config --get remote.origin.url # timeout=10
using GIT_ASKPASS to set credentials 
 > git lfs pull origin

GitHub has been notified of this commit’s build result

hudson.plugins.git.GitException: Command "git lfs pull origin" returned status code 1:
stdout: 
stderr: git: 'lfs' is not a git command. See 'git --help'.

Did you mean this?
    log

    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2016)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1735)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$300(CliGitAPIImpl.java:72)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$9.execute(CliGitAPIImpl.java:2327)
Caused: hudson.plugins.git.GitException: Could not checkout cc7f9c365b32d0db25f4223a17dc9ba26427fe47
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$9.execute(CliGitAPIImpl.java:2339)
    at jenkins.plugins.git.MergeWithGitSCMExtension.checkout(MergeWithGitSCMExtension.java:146)
    at jenkins.plugins.git.MergeWithGitSCMExtension.decorateRevisionToBuild(MergeWithGitSCMExtension.java:112)
    at hudson.plugins.git.GitSCM.determineRevisionToBuild(GitSCM.java:1100)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1193)
    at org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:113)
    at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:144)
    at org.jenkinsci.plugins.workflow.multibranch.SCMBinder.create(SCMBinder.java:120)
    at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:303)
    at hudson.model.ResourceController.execute(ResourceController.java:97)
    at hudson.model.Executor.run(Executor.java:429)
Finished: FAILURE

У меня включена функция "Git LFS pull after checkout", но она настроена / установлена ​​только на узлах агента. Узлы агента имеют home/jenkins в качестве удаленного корневого каталога, а var/lib/jenkins - корневой каталог на главном узле. Как видно из приведенных выше журналов, проверка выполняется на главном узле.

Мне никогда не приходилось использовать git lfs на главном узле, потому что эта работа всегда выполнялась на узле агента.

У меня вопрос, почему запрос на загрузку Github основывается на главном узле Jenkins, а не на таких агентах, как ветви git?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...