Jenkins GitSCM 在特定文件夹中结帐

sha*_*ILU 4 git version-control plugins checkout jenkins

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

因此,如果我的存储库xyz.git在检出之后,存储库的所有文件都应该MyFolder/*MyFolder/xyz/*.

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

git clone <REPOSITORY> -- MyFolder
Run Code Online (Sandbox Code Playgroud)

和下面的命令将签出 xyz 文件夹中的文件

git clone <REPOSITORY> 
Run Code Online (Sandbox Code Playgroud)

作为参考,我正在处理以下配置

  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]]])
Run Code Online (Sandbox Code Playgroud)

请建议。版本信息:

  • 詹金斯 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

use*_*090 6

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

类似于以下内容:-

 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]]
       ])
Run Code Online (Sandbox Code Playgroud)