我在Jenkins中定义了MultiBranchPipeline,它克隆了Project 1。现在我定义了一个步骤来克隆Project 2,但是它会覆盖Project 1的内容。
pipeline {
agent {
label 'agent'
}
stages {
stage('Project1 checkout automatically') {
steps {
script {
echo "Project1 is cloned automatically by the given Jenkins configuration"
//e.g. : base/Project1
}
}
}
stage('Project2 checkout phase'){
steps{
git branch: 'master',
credentialsId: 'b9152824f',
url: 'https://git/Project2.git'
//e.g. : base/Project2
}
}
}
}
因此,这将只使用base/Project 2内容覆盖base
文件夹的内容。有没有一些简单的解决方案,我可以使用它来合并Project 2的内容到现有Project 1的内容中,这样我就可以得到这两个内容:base/Project1
和base/Project2
文件夹
1条答案
按热度按时间ijnw1ujt1#
当你构建一个作业时,你应该看到一个像Running in 'jenkins/home/'这样的工作区路径,这是第一个项目被复制的地方。我建议为ppoth项目的workdir声明一个env变量,并使用不同的workdir来克隆项目2
这将在当前文件夹中创建另一个文件夹,并克隆那里的所有内容。
在这里我们将创建一个ir项目1并复制所有文件(注意,如果你不想使用mv命令而不是cp,那么基本目录中的现有文件将在那里。然后在基本目录中创建另一个目录作为project 2ndcd,然后 checkout 。
您可以在最后添加另一个阶段,以便在最后清除WORKDIR,这样下次运行作业增益时就不会出现问题