Как добавить опцию установки ртути в multibranchPipelineJob? - PullRequest
0 голосов
/ 25 мая 2018

Я хочу добавить параметр установки Mercurial, поскольку он не поддерживается для multibranchPipelineJob в Jenkins.Я думал об использовании блока конфигурации, но он создает новый узел "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>

Что-нибудь, что я пропустил?

Джайн.

1 Ответ

0 голосов
/ 25 мая 2018

Чтобы определить источник Mercurial SCM в формате dsl, пользователь может использовать метод mercurialSCMSource, предоставленный плагином DSL, для определения учетных данных, источника и идентификатора.В настоящее время в рамках этого метода mercurialSCMSource вы не можете определить Hg "установка".Следовательно, одним из способов указать параметр «установка» было использование блока настройки.

Когда я использовал блок настройки ТОЛЬКО для определения «установки», он создавал 2 разных узла «BranchSource», как указано в снимке экрана xml.выше.Таким образом, другим способом решения этой проблемы было использование блока конфигурации для определения всего mercurialSCMSource, который включает в себя учетные данные, источник и установку (что мне было нужно).Таким образом, он сгенерировал правильное задание (или config.xml)

ПРИМЕЧАНИЕ. Это исправление также учитывает «Append (<<) не работающий с атрибутами», упомянутый в этом посте: <code>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'
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...