Jenkins Pipeline - 如何在同一文件夹中签出来自不同 SCM(svn 和 git)的两个存储库,并防止最后一个存储库擦除第一个存储库

问题描述 投票:0回答:0

我有一个同时具有 git 和 svn 的项目(git 用于开发人员,svn 用于艺术家) 两个存储库具有相同的文件夹层次结构。 .svn 和 .git 文件夹位于同一文件夹中。

我尝试设置一个带有两个“签出”的詹金斯管道,这两个“签出”都会在同一文件夹中签出,但这似乎不起作用。据我了解这里的问题,如果结帐(SubversionSCM 或 gitscm)发现这里没有存储库(根据使用的 SCM 检查 .svn/.git 文件夹?),结帐插件确保结帐文件夹是清空并擦拭它:(.

因此,无论我如何重新排序,第二次签出(gitscm 或 SubversionSCM)都会清除第一次签出。我怎样才能防止这种情况发生?

这是我迄今为止的詹金斯管道重现脚本:

pipeline
{
    agent any
    stages
    {
        stage('Checkout')
        {
            steps
            {
                checkout changelog: false,
                        poll: false,
                        scm: [ 
                            $class: 'SubversionSCM',
                            additionalCredentials: [], 
                            excludedCommitMessages: '', 
                            excludedRegions: '', 
                            excludedRevprop: '', 
                            excludedUsers: '', 
                            filterChangelog: false, 
                            ignoreDirPropChanges: false, 
                            includedRegions: '', 
                            locations: [[
                                cancelProcessOnExternalsFail: true, 
                                credentialsId: 'svn_credentials', 
                                depthOption: 'infinity', 
                                ignoreExternalsOption: true, 
                                local: '.', 
                                remote: 'http://svn_repo_address']], 
                            quietOperation: true, 
                            workspaceUpdater: [$class: 'UpdateUpdater']]
                            
                checkout changelog: false, 
                        poll: false, 
                        scm: scmGit(branches: [[name: 'develop']], 
                                    extensions: [], 
                                    userRemoteConfigs: [[credentialsId: 'git_credentials', 
                                                        url: 'http://git_repo_address.git']])
            }
        }
    }
}

jenkins jenkins-pipeline jenkins-groovy jenkins-declarative-pipeline jenkins-git-plugin
© www.soinside.com 2019 - 2024. All rights reserved.