首页 > 解决方案 > Groovy 如何在 Jenkins 共享库中检出源代码?

问题描述

我正在阅读 Jenkins 管道库的源代码,并看到了这个名为checkoutRepo.groovy. 我可以看到 groovy 代码正在使用 git 来签出一个 repo,但是这是怎么发生的呢?逐行执行的语法是什么?它看起来很神秘,我以前从未见过它,更不用说逐行理解它的作用了。

checkoutRepo.groovy

def call(Map stageParams){
    //Setting up variables
    def branchName = stageParams["branchName"]
    def appName = stageParams["appName"]

    dir("${appName}") {
        checkout(
            [
                $class: 'GitSCM',
                branches: [[name: branchName]],
                doGenerateSubmoduleConfigurations: false,
                extensions: [],
                gitTool: 'Default',
                submoduleCfg: [],
                userRemoteConfigs: [[credentialsId: 'PSCODE_CREDS', url: 'https://pscode.lioncloud.net/mcmessaging/' + appName + '.git']]
            ]
        )
    }
}

标签: jenkinsgroovy

解决方案


您可能知道 Jenkins 架构是基于插件构建的,这些插件公开了可用于管道作业和共享库代码的关键字。
在这种情况下,checkout是一个内置关键字,用于通过配置的 scm 检出代码。
在您的示例代码中,选择的 SCM 配置是 Git,它由Git Plugin提供。
所以它实际上并不是纯 groovy 代码,而是 Jenkins 添加的一个关键字(方法)。

传递给checkout代码的行是此管道步骤接受的参数。
此链接显示该步骤的所有相关文档checkout,包括该步骤的所有可用参数。


推荐阅读