我正在使用Jenkins Multiple SCM插件在Jenkins作业中将三个git存储库检入到三个子目录中。然后,我执行一组命令,以使用从所有三个存储库中提取的信息和代码构建一组工件。
现在已弃用多个SCM,并且文本建议移至管道。我尝试过,但是我不知道如何使它工作。
这是我想从我的Jenkins工作目录的顶层看到的目录结构:
$ ls
Combination
CombinationBuilder
CombinationResults
这三个子目录中的每一个都有一个单独的git repo签出。对于Multiple SCM,我使用git,然后添加了“检出到子目录”的行为。这是我使用管道脚本的尝试:
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-子目录”行为。