簡體   English   中英

Jenkins,無法使用多個 scm (git):無法結帳,錯誤 128

[英]Jenkins, cannot use multiple scm (git): cannot checkout, error 128

我有 2 個 git 存儲庫:PyfaData PyfaConn

如果我嘗試僅使用其中一個來運行 jenkins,則一切正常。

不幸的是 PyfaData 依賴於 PyfaConn,所以我需要兩者。

我使用了源代碼管理“git”和“multiple scms”。

只有當我使用兩個 repos 時,事情才開始失敗。 顯然“git”不是為此而設計的,所以我使用“multiple scms”,然后在其下添加 2x git。

無論我選擇哪種順序,獲取的第二個 repo 都會返回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,我只在我添加到我的 jenkins 工作中的第二個 git repo 上得到這個。

--- 更新:我正在使用多配置項目創建此作業

---更新2:

這個問題 - 經過長時間的觀察 - 看起來很像一個錯誤:它發生在多配置項目中,而父控制台輸出正確顯示了 2 個不同的 s(例如 421ed02c45a6ac0ffd2........ 和 0987dc9087f687 ........)對於 2 個 repos 中的每一個,配置矩陣中的每個子節點都顯示了兩個 repos 的相同修訂號,並且無法檢出第二個。

這可能與Jenkins Bug有關

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

顯然,解決方案不是使用多配置項目插件,而是嘗試使用管道來代替。

這更乏味,需要常規腳本,所以不是真正的解決方案,但絕對是我問題的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM