最佳答案
在我的 Jenkins 工作中,我使用 Jenkins 多 SCM 插件将三个 git 存储库签出到三个子目录中。然后,我执行一组命令来构建一组工件,其中包含来自所有三个存储库的信息和代码。
多个 SCM 现在被折旧,并且文本建议移动到管道。我试过了,但我不知道该怎么办。
下面是我感兴趣的 Jenkins 工作目录顶层的目录结构:
$ ls
Combination
CombinationBuilder
CombinationResults
这三个子目录中的每一个都有一个检出的 git 回购。对于多 SCM,我使用 git,然后添加“ checkout to a subdirectory”行为。下面是我对一个流水线脚本的尝试:
node('ATLAS && Linux') {
sh('[ -e CalibrationResults ] || mkdir CalibrationResults')
sh('cd CalibrationResults')
git url: 'https://github.com/AtlasBID/CalibrationResults.git'
sh('cd ..')
sh('[ -e Combination ] || mkdir Combination')
sh('cd Combination')
git url: 'https://github.com/AtlasBID/Combination.git'
sh('cd ..')
sh('[ -e CombinationBuilder ] || mkdir CombinationBuilder')
sh('cd CombinationBuilder')
git url: 'https://github.com/AtlasBID/CombinationBuilder.git'
sh 'cd ..'
sh('ls')
sh('. CombinationBuilder/build.sh')
}
然而,git 命令似乎是在工作区的顶级目录中执行的(这有一定的意义) ,而且根据语法,似乎不存在 checkout-to-sub 目录行为。