首页 > 解决方案 > 使用 jenkins groovy "checkout" 命令从 git 签出特定文件夹

问题描述

我对 jenkins 和 groovy 很陌生,我正在尝试在我的 jenkins 文件中进行稀疏检出。目前我只是这样做:

stage('Check out branch from Gitlab'){ 
    echo 'Pulling...' + env.BRANCH_NAME
    checkout scm
}

我希望从 Jenkins Groovy 脚本执行稀疏结帐,但我正在努力寻找一种好的方法。有没有办法使用“结帐”命令来做到这一点?

标签: jenkinsjenkins-groovy

解决方案


您应该在此处为 GitSCM 更多信息配置一组参数

下面以一个基本配置为例:

pipeline { 
    agent any
    stages {     
        stage ("Git Checkout"){ 
            steps {
            script {
                    checkout([
                        $class: 'GitSCM',
                        branches: [[name: "devel"]],
                        doGenerateSubmoduleConfigurations: false,
                        extensions: [[
                            $class: 'RelativeTargetDirectory',
                            relativeTargetDir: "/tmp/jenkins/devel"
                        ]],
                        submoduleCfg: [],
                        userRemoteConfigs: [[
                            credentialsId: 'jenkinsCredentialsId',
                            url: 'https://git.example.com/git/example'
                        ]]
                    ])
                
                }
            }
        } 
    }
}

我附加了一个阶段的完整工作的 Jenkins 管道。它在 directory 上签出devel存储库的分支。另请注意,您应该在 Jenkins Credentials (/jenkins/credentials/) 中添加(如果尚未完成)存储库的凭据,在上面的示例中位于 id 下https://git.example.com/git/example/tmp/jenkins/develjenkinsCredentialsId

您可以阅读 GitSCM 的链接以了解更多可以配置的详细信息和属性。


推荐阅读