切换到管道内的另一个分支?

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 您想要的任务。