当前位置: 首页 > 知识库问答 >
问题:

詹金斯间歇挂在git克隆/从github在管道作业结账

孟光耀
2023-03-14

您是否看到并有针对该问题的解决方案或调查想法:

>

  • 使用GitHub SCM管道的jenkins管道作业在克隆/签出时间歇性挂起
  • 詹金斯日志中没有关于这种情况的报道
  • 只有在我们有大量活动时(通常在sprint演示之前)才会发生这种情况。
  • 一段时间后清除-尚未检测到太多模式

    签出gitgit@github.com:MyTeam/myproject-into/var/lib/jenkins/jobs/myproject-dev-deploy/workspace@script要读取deploy/dev Jenkinsfile git rev parse--在工作树中#timeout=10从远程git存储库git config remote获取更改。起源网址git@github.com:MyTeam/myproject#timeout=10从中获取上游更改git@github.com:MyTeam/myproject git--version#timeout=10使用git#u SSH设置myproject git fetch的凭据部署密钥--tags--progressgit@github.com:MyTeam/myproject refs/heads/:refs/remotes/origin/```

  • 共有2个答案

    贲言
    2023-03-14

    我通过git clone命令遇到了这个问题,解决这个问题花了我2天的时间。如果您在jenkins上通过windows shell/batch运行git命令,可能是git ssh密钥问题导致的。。。

    jenkins windows shell或批处理命令将使用系统帐户来处理git命令,它的ssh密钥设置与你的gerrit插件或登录帐户不同。

    “系统”帐户的git ssh密钥正在以下路径中设置:

    • C:\Windows\System32\config\systemprofile\。宋承宪
    • C:\Windows\SysWOW64\config\systemprofile\。ssh

    您可以在这些路径中为系统帐户检查ssh密钥。

    Jenkins不会自动将已知主机的新密钥导入您的know_主机文件。您可以通过以下步骤手动完成此操作:

    从本地帐户know_host(C:\Users\.ssh)复制注册密钥,您将看到以下文件的底部:

    [gerrit.cartography.com]: 29168,[10.25.174.78]: 29418 ssh-rsa AAAAB3NzaC1yc2EAASSSSAQABAAAAgQDPHbDKCHL3oPbzDn3qaVZR8S1EZx/rb500Th/fjQYg5jrJ7PBMVUyNTpJ2moje5hLYjNsVtXtcoNEZjImGul2dl3f eHrCB27X5198jr8Wj66I/xsQCLEngd7l3velsdfgd3432fsdDiFaE9INjDjgngfNzlFA CYpFsnaorZ6XSPQ==

    粘贴到系统know_host文件。

    • C:\Windows\System32\config\systemprofile\。宋承宪
    • C:\Windows\SysWOW64\config\systemprofile\。ssh

    我想你现在会解决你的问题!好好享受吧!

    仲孙宇定
    2023-03-14

    java应用程序中可怕的间歇性问题?我们转到JVM设置。幸运的是,CloudBees写了一篇关于调优Jenkins GC以提高大型实例的响应性和稳定性的文章

    原来这不是主要因素。真正的原因是网络配置和备份作业对饱和的影响。不过,这是一篇优秀的文章。

    下面是我们调试它的方法:

    • Github的支持给了我们这个https://github-debug.com/的脚本,我们因此增强了它

    '

    #!/usr/bin/env bash
    
    echo Clearing Previous Run
    rm -rf /tmp/debug-repo-http
    rm -rf /tmp/debug-repo-ssh
    
    echo clone1: `date`
    time git clone https://github.com/github/debug-repo /tmp/debug-repo-http
    
    echo clone2: `date`
    time git clone git@github.com:github/debug-repo /tmp/debug-repo-ssh
    
    echo Ping: `date`
    time ping -c 10 github.com
    
    #echo traceroute: `date`
    #traceroute github.com
    

    >

  • 设置jenkins作业,尝试检查,失败并报告,如果它花了超过30-一次通过管道插件和一次通过外壳脚本

    开始运行各种测试:转储所有docker映像并重新拉取、s3拉取备份、s3推送备份等。

    在另一个网络区域重复测试并比较结果

  •  类似资料:
    • 我试图从流水线步骤中运行一个job-dsl脚本。一般来说,这应该是可能的,正如这里所描述的,在管道步骤中添加了以下代码片段: null 我如何知道脚本的真实位置,以及如何指定一个jobDsl作为目标,它本身位于不同的repo中?还是我完全走错了方向? 编辑 经过进一步的研究,共享库存储库被签出到“真实”工作区旁边的一个目录中,后缀为@libs,这似乎是事实。所以我认为使用以下方法是个好主意: 与此

    • 我们可以使用GitHub个人令牌进行git推送吗?

    • 安装了插件,这样当我们签入时,执行一个构建,如果成功,则验证中的修改。如果构建失败,那么就不是。我的理解是,这是通过在中设置的工作来实现的。我们现在已经创建了一个新分支(),我想我需要克隆指向另一个分支的现有作业,以便在每次提交时执行相同的工作流和构建。有人能解释一下我是如何克隆这些工作的吗?我似乎看不到一种通过UI来完成的方法,甚至看不到一种通过UI列出作业的方法。

    • 问题内容: 已解决 :感谢S.Richmond的以下答复我需要取消所有类型的存储映射,这意味着将变量和使用后作废。 附加 :搜索此错误的人员可能有兴趣使用Jenkins管道步骤- 在此处查找更多信息。 我正在尝试使用Jenkins Pipeline从用户那里获取输入,该输入作为json字符串传递给作业。管道然后使用隔离器对此进行解析,然后选择重要信息。然后,它将使用该信息与不同的作业参数并行运行1

    • 下面是我简单的jenkins pipeline groovy脚本,它将用这两个阶段和我们想要构建的作业创建一个管道,我希望在job configuration下的脚本中每次都更新用于构建和代码分析的作业名,方法是从用户界面中获取数据,用户将使用Eclipse提供构建作业名和代码分析作业名- jenkinsfile脚本:-

    • 我正在使用jenkins管道,我的Jenkinsfile有几个阶段和工作。有没有办法在詹金斯管道之外运行特定的工作? 示例:假设其中一个阶段是执行“SCP构建工件到远程位置”。出于某种原因,这失败了,如果我想手动运行jenkins管道之外的其他工作,我如何做到这一点? 我对调用新的构建最不感兴趣。那么,我们可以手动运行jenkins管道以外的故障后的剩余作业吗?