git - Jenkins GitSCM 在特定文件夹中 checkout

标签 git jenkins plugins version-control checkout

我搜索了很多,GitSCM 插件和 stackoverflow 等,但找不到答案。我想通过 Jenkins GitSCM 插件将 Git 存储库 checkout 到一个特定的文件夹中,比如“MyFolder”。

所以如果我的仓库是 xyz.git然后在 checkout 后存储库的所有文件都应该在 MyFolder/* 中而不是在 MyFolder/xyz/* .

要了解更多信息,我想使用 Jenkins GitSCM 插件在下面实现(假设存储库是 xyz.git)。下面的命令将 check out MyFolder 中的文件不包括根文件夹 xyz

git clone <REPOSITORY> -- MyFolder

和下面的命令将 checkout xyz 文件夹中的文件
git clone <REPOSITORY> 

作为引用,我正在处理以下配置
  checkout([$class: 'GitSCM', branches: [[name: gitDefaultBranch]], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'CleanBeforeCheckout'],[$class: 'SubmoduleOption', disableSubmodules: false, parentCredentials: true, recursiveSubmodules: true, reference: '', trackingSubmodules: false]], submoduleCfg: [], userRemoteConfigs: [[credentialsId: gitCreds, url: gitProjectUrl]]])

请建议。
版本信息:
  • Jenkins 2.121.1 核心
  • 管道:声明性 1.3.2
  • 管道:Groovy 2.55
  • Git 插件 3.9.1
  • org.jenkins-ci.plugins:scm-api:2.3.0
  • org.jenkins-ci.plugins.workflow:workflow-scm-step:2.7
  • 最佳答案

    您可以使用 [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'MyFolder/']]在您的 checkout 代码中。

    类似于以下内容:-

     checkout([   $class: 'GitSCM',
             branches: [[name: gitDefaultBranch]],
             doGenerateSubmoduleConfigurations: false,
             extensions: [[$class: 'CleanBeforeCheckout'],
                          [$class: 'SubmoduleOption',
                           disableSubmodules: false,
                           parentCredentials: true,
                           recursiveSubmodules: true,
                           reference: '',
                           trackingSubmodules: false],
                          [$class: 'RelativeTargetDirectory',
                           relativeTargetDir: 'MyFolder/']],
             submoduleCfg: [],
             userRemoteConfigs: [[credentialsId: gitCreds, url: gitProjectUrl]]
           ])
    

    关于git - Jenkins GitSCM 在特定文件夹中 checkout ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55630132/

    相关文章:

    git - 如何撤消主目录上的 git init?

    git - 从 Visual Studio 外部访问 TFS git 存储库总是提示输入用户名和密码

    git - 上传本地仓库到 github.com

    java - Jenkins : Cannot run program "hg"

    jenkins - 如何放宽Allure的Jenkins安全规则?

    jenkins - 无法在 jenkinsfile 中设置环境变量

    ruby - 导轨 3 : Creating app with internal plugin system

    jenkins - 如何在 Jenkins 上启用 "Build environment" session ?

    linux - 将 git 与第二次编译的 ssh 一起使用

    java - 如何使用 JavaExec 任务将 Java 代码嵌入到 Gradle 构建中