如何在多分支管道作业中添加汞安装选项?



我想添加 mercurial 安装选项,因为 Jenkins 中的 multibranchPipelineJob 不支持它。我想使用配置块,但它创建了一个新节点"jenkins.branch.BranchSource",而不是更新现有节点。

configure {            
(it / 'sources' / 'data' / 'jenkins.branch.BranchSource' (plugin: 'branch-api@2.0.20') / 'source' / 'traits') <<  'hudson.plugins.mercurial.traits.MercurialInstallationSCMSourceTrait' {
installation  'TortoiseHg-4.5.2-x64'
}
}

生成的 config.xml 文件如下所示:

<sources class="jenkins.branch.MultiBranchProject$BranchSourceList">
<data>
<jenkins.branch.BranchSource plugin="branch-api@2.0.20">
<source>
<traits>
<hudson.plugins.mercurial.traits.MercurialInstallationSCMSourceTrait>
<installation>TortoiseHg-4.5.2-x64</installation>
</hudson.plugins.mercurial.traits.MercurialInstallationSCMSourceTrait>
</traits>
</source>
</jenkins.branch.BranchSource>
<jenkins.branch.BranchSource plugin="branch-api@2.0.20">
<source plugin="mercurial@2.3" class="hudson.plugins.mercurial.MercurialSCMSource">
<source>https://somerepopath</source>
<credentialsId>username</credentialsId>
<traits/>
</source>
</jenkins.branch.BranchSource>
</data>
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
</sources>

我错过了什么?

耆那教的。

为了定义 dsl 格式的 mercurialSCM 源,用户可以使用 DSL 插件提供的 mercurialSCMSource 方法来定义凭据、源和 id。 目前,在这种 mercurialSCMSource 方法下,您无法定义 Hg "安装"。因此,指定"安装"选项的一种方法是使用配置块。

当我仅使用配置块来定义"安装"时,它正在创建 2 个不同的"分支源"节点,如上面的 xml 快照中所述。因此,解决此问题的另一种方法是使用配置块来定义整个 mercurialSCMSource,其中包括凭据、源和安装(我需要(。这样它就生成了正确的作业(或配置.xml(

注意:此修复程序还处理了这篇文章中提到的"追加(<<(不使用属性":https://github.com/jenkinsci/job-dsl-plugin/wiki/The-Configure-Block

希望对您有所帮助!!

configure { project ->
def node_base = (project / sources / data / 'jenkins.branch.BranchSource' (plugin: 'branch-api@2.0.20') / 'source' (plugin: 'mercurial@2.3' , class: 'hudson.plugins.mercurial.MercurialSCMSource'))
node_base << {
source 'https://somerepolink'
credentialsId 'username'
}
node_base << 'traits' {
'hudson.plugins.mercurial.traits.MercurialInstallationSCMSourceTrait'{
installation 'TortoiseHg-4.5.2-x64'
}
}
}

最新更新