并行Jenkins管道级的通用设置

并行Jenkins管道级的通用设置,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我正在尝试设置一个Jenkins构建,该构建将SVN同步到给定的变更列表,然后为各种不同的配置并行构建代码。我有一个预构建步骤,需要每个代理运行一次,而不管该代理将构建多少个构建。我当前的声明性管道如下所示: pipeline { agent none stages { stage('parallel') { failFast true parallel { stage('Release')

我正在尝试设置一个Jenkins构建,该构建将SVN同步到给定的变更列表,然后为各种不同的配置并行构建代码。我有一个预构建步骤,需要每个代理运行一次,而不管该代理将构建多少个构建。我当前的声明性管道如下所示:

pipeline {
agent none
stages
{   
    stage('parallel')
    {
        failFast true

        parallel
        {
            stage('Release')
            {
                agent {
                    label {
                        label "windows"
                    }
                }                   
                steps
                {
                    checkout([$class: 'SubversionSCM',
                    additionalCredentials: [],
                    excludedCommitMessages: '',
                    excludedRegions: '',
                    excludedRevprop: '',
                    excludedUsers: '',
                    filterChangelog: false,
                    ignoreDirPropChanges: false,
                    includedRegions: '',
                    locations: [[credentialsId: 'SVN',
                        depthOption: 'infinity',
                        ignoreExternalsOption: false,
                        local: '.',
                        remote: 'https://my-repo']],
                    workspaceUpdater: [$class: 'UpdateUpdater']])

                    bat 'Prebuild.bat'
                    bat 'msbuild Game/Code/Application.sln "Release|x64"'
                }
            }
            stage('Debug Optimized')
            {
                agent {
                    label {
                        label "windows"
                    }
                }
                steps
                {
                    checkout([$class: 'SubversionSCM',
                    additionalCredentials: [],
                    excludedCommitMessages: '',
                    excludedRegions: '',
                    excludedRevprop: '',
                    excludedUsers: '',
                    filterChangelog: false,
                    ignoreDirPropChanges: false,
                    includedRegions: '',
                    locations: [[credentialsId: 'SVN',
                        depthOption: 'infinity',
                        ignoreExternalsOption: false,
                        local: '.',
                        remote: 'https://my-repo']],
                    workspaceUpdater: [$class: 'UpdateUpdater']])

                    bat 'Prebuild.bat'
                    bat 'msbuild Game/Code/Application.sln "Debug Optimized|x64"'
                }
            }
        }
    }
}
}
虽然这是可行的a)它无法维护(实际上我有大约20个配置要构建,我不想维护我的scm设置的20个副本),b)它在每个阶段运行一次签出/预构建,而不是每个代理运行一次。我注意到代理有一个默认的签出,但据我所知,这不适用于SVN


有没有比这更好的并行阶段方法?

你听说过Jenkins多任务插件吗?

它能满足你的需要吗


当一个作业完成时,您还可以构建下游作业。

您可以在一个阶段中进行签出并隐藏源。然后,作为并行阶段的第一步,将其解列。不过,我已经使用脚本化管道完成了这项工作。我的分支太大(10 GB),无法实现,不幸的是,我不确定声明性管道,但至少使用脚本化管道,您可以在单个阶段(或后续阶段)签出并执行进一步的操作。您可以通过一组“节点”调用“并行”,每个节点执行一系列阶段。关于scm设置的维护:也许您可以将这些设置移动到共享库中。看,这意味着放弃管道,对吗?我真的很喜欢管道文件背后的理念。