切换到管道内的另一个分支?
Switching to another branch inside pipeline?
我正在尝试 运行 使用 Jenkins 遵循开发 -> 生产流程的管道,因此它有两个主要阶段 DEV 和 PROD,每个阶段我都有不同的代码,因为在我的生产阶段我会使用 docker.
这就是为什么我将使用相同的存储库,但每个阶段都有不同的分支。
在 master(prod) 分支中,我有一个使用其他分支代码的子模块。
所以我想知道是否可以使用代理在分支之间切换,或者我必须删除目录并使用 sh 克隆存储库?
如果我的解释不足,请告诉我更多的解释:)
如果有人有提示请帮助我。
是的,这在很多方面都是可能的。请看看我下面的例子。
node {
stage('clean workspace') {
deleteDir()
}
stage('dev') {
dir('dev') {
git url: "https://github.com/samitkumarpatel/test0.git", branch:'dev'
sh """
ls -al
"""
}
}
stage('prod') {
dir('prod') {
git url: "https://github.com/samitkumarpatel/test0.git", branch: 'prod'
sh """
ls -al
"""
}
}
stage('debug') {
// Here you can see all the folder like dev, prod
sh 'ls -al $WORKSPACE'
}
}
上面的示例将在 Jenkins Workspace/dev
中签出我的开发分支,而 prod 分支将在 Jenkins Workspace/prod
文件夹中签出,然后您可以导航到该文件夹并 execute/perform 您想要的任务。
我正在尝试 运行 使用 Jenkins 遵循开发 -> 生产流程的管道,因此它有两个主要阶段 DEV 和 PROD,每个阶段我都有不同的代码,因为在我的生产阶段我会使用 docker.
这就是为什么我将使用相同的存储库,但每个阶段都有不同的分支。
在 master(prod) 分支中,我有一个使用其他分支代码的子模块。
所以我想知道是否可以使用代理在分支之间切换,或者我必须删除目录并使用 sh 克隆存储库?
如果我的解释不足,请告诉我更多的解释:) 如果有人有提示请帮助我。
是的,这在很多方面都是可能的。请看看我下面的例子。
node {
stage('clean workspace') {
deleteDir()
}
stage('dev') {
dir('dev') {
git url: "https://github.com/samitkumarpatel/test0.git", branch:'dev'
sh """
ls -al
"""
}
}
stage('prod') {
dir('prod') {
git url: "https://github.com/samitkumarpatel/test0.git", branch: 'prod'
sh """
ls -al
"""
}
}
stage('debug') {
// Here you can see all the folder like dev, prod
sh 'ls -al $WORKSPACE'
}
}
上面的示例将在 Jenkins Workspace/dev
中签出我的开发分支,而 prod 分支将在 Jenkins Workspace/prod
文件夹中签出,然后您可以导航到该文件夹并 execute/perform 您想要的任务。