并行Jenkins管道级的通用设置
我正在尝试设置一个Jenkins构建,该构建将SVN同步到给定的变更列表,然后为各种不同的配置并行构建代码。我有一个预构建步骤,需要每个代理运行一次,而不管该代理将构建多少个构建。我当前的声明性管道如下所示:并行Jenkins管道级的通用设置,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我正在尝试设置一个Jenkins构建,该构建将SVN同步到给定的变更列表,然后为各种不同的配置并行构建代码。我有一个预构建步骤,需要每个代理运行一次,而不管该代理将构建多少个构建。我当前的声明性管道如下所示: pipeline { agent none stages { stage('parallel') { failFast true parallel { stage('Release')
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设置的维护:也许您可以将这些设置移动到共享库中。看,这意味着放弃管道,对吗?我真的很喜欢管道文件背后的理念。