You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Jenkins代理拉取脚本化流水线的代码仓库?

解决Jenkins脚本化流水线在Agent拉取代码仓库的问题

脚本化流水线默认会在Master节点拉取流水线脚本所在的仓库(因为要先加载执行脚本),所以Agent节点拿不到代码和Makefile。要让Agent也获取仓库,直接在Agent的执行块里显式执行checkout操作即可,具体方法如下:

  • 直接复用任务配置的SCM信息
    在脚本的node块(指定Agent的部分)里添加checkout scm命令,它会自动使用你在Jenkins任务中配置的SCM参数拉取代码到Agent工作目录:

    node('your-agent-label') {
      // 显式在Agent上拉取仓库代码
      checkout scm
      // 现在可以正常调用Makefile
      sh 'make your-target'
    }
    
  • 自定义SCM配置(可选)
    如果需要指定特定分支、凭据或者其他SCM参数,可以手动编写checkout的详细配置:

    node('your-agent-label') {
      checkout([
        $class: 'GitSCM',
        branches: [[name: '*/develop']], // 指定分支
        userRemoteConfigs: [[
          url: 'https://your-repo-url.git',
          credentialsId: 'your-credential-id' // 配置凭据ID
        ]]
      ])
      sh 'make build'
    }
    

另外你之前用的skipDefaultCheckout()是声明式流水线的语法,脚本化流水线本身就没有默认的Agent checkout行为,所以这个命令对你的场景无效。

内容的提问来源于stack exchange,提问作者Tom Mekken

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 04:35:38