Jenkins, нельзя использовать несколько scm (git): невозможно оформить заказ, ошибка 128 - PullRequest
0 голосов
/ 16 января 2020

У меня есть 2 git репозитория: PyfaData PyfaConn

Если я пытаюсь запустить jenkins только с одним из них, все работает нормально.

К сожалению, PyfaData зависит от PyfaConn, поэтому мне нужно Оба.

Я использовал управление исходным кодом "git" и "несколько scms".

Только когда я использую два репозитория, вещи начинают давать сбои. Очевидно, «git» не предназначен для этого, поэтому я использую «несколько scms», а затем добавляю 2x git к этому.

Независимо от выбранного мной порядка, второе репо, которое получено, возвращается Checking out Revision 123abc......., за которыми следуют FATAL: Could not checkout 123abc.... и reference is not a tree: 123abc....

оба репозитория имеют только "главную" ветку

Полный код ошибки приведен ниже (я попытался удалить всю конфиденциальную информацию, пожалуйста, дайте мне знаете, если вы заметили, что я что-то пропустил :))

Есть идеи, почему это не удается? Спасибо !!


 > git fetch --tags --force --progress ...............git +refs/heads/*:refs/remotes/origin/*
Checking out Revision 421ed02c45a6ac0ffd2.................86523d (refs/remotes/origin/master)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 421ed02c45a6ac0ffd2.................86523d
FATAL: Could not checkout 421ed02c45a6ac0ffd2.................86523d
hudson.plugins.git.GitException: Command "git checkout -f 421ed02c45a6ac0ffd2.................86523d" returned status code 128:
stdout: 
stderr: fatal: reference is not a tree: 421ed02c45a6ac0ffd2.................86523d



at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2042)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$900(CliGitAPIImpl.java:72)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$9.execute(CliGitAPIImpl.java:2341)
Also:   hudson.remoting.Channel$CallSiteStackTrace: Remote call to JNLP4-connect connection from ......................
        at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1741)
        at hudson.remoting.UserResponse.retrieve(UserRequest.java:389)
        at hudson.remoting.Channel.call(Channel.java:955)
        at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.execute(RemoteGitImpl.java:146)
        at sun.reflect.GeneratedMethodAccessor631.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.$Proxy89.execute(Unknown Source)
        at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1242)
        at org.jenkinsci.plugins.multiplescms.MultiSCM.checkout(MultiSCM.java:143)
        at hudson.scm.SCM.checkout(SCM.java:504)
        at hudson.model.AbstractProject.checkout(AbstractProject.java:1208)
        at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:574)
        at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
        at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499)
        at hudson.model.Run.execute(Run.java:1798)
        at hudson.matrix.MatrixRun.run(MatrixRun.java:153)
        at hudson.model.ResourceController.execute(ResourceController.java:97)
        at hudson.model.Executor.run(Executor.java:429)
Caused: hudson.plugins.git.GitException: Could not checkout 421ed02c45a6ac0ffd2.................86523d
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$9.execute(CliGitAPIImpl.java:2365)
    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:153)
    at hudson.remoting.UserRequest.perform(UserRequest.java:50)
    at hudson.remoting.Request$2.run(Request.java:336)
    at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
    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$1.run(Engine.java:94)
    at java.lang.Thread.run(Thread.java:748)
Finished: FAILURE

Я проверил другие подобные вопросы, но во всех остальных вопросах я обнаружил, что пользователи имеют эту ошибку 128 независимо от конфигурации, я получаю ее только на втором репо git, который добавляю к своему задание jenkins.

--- обновление: я создаю это задание с помощью проекта с несколькими конфигурациями

--- update2:

Проблема - после долгого просмотра это выглядит как ошибка: это происходит в мультиконфигурационном проекте, и хотя вывод родительской консоли показывает правильно 2 разных значения (например, 421ed02c45a6ac0ffd2 ........ и 0987dc9087f687 ....... .) для каждого из 2 репозиториев каждый из дочерних элементов, охватываемых матрицей конфигурации, показывает один и тот же номер ревизии для обоих репозиториев, и он не может извлечь второе.

1 Ответ

0 голосов
/ 20 января 2020

Это, вероятно, связано с ошибкой Дженкинса

https://issues.jenkins-ci.org/browse/JENKINS-23445

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

Это намного более утомительно и требует groovy написания сценариев, так что на самом деле это не решение, но определенно ответ на мой вопрос.

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