job dsl — сонар с использованием гибкого плагина публикации

Я использую плагин job dsl для создания заданий jenkins. У меня возникла проблема с реализацией сонара плагина job dsl. Я использую плагин Flexible Publish, чтобы предоставить условие для запуска сонара; т. е. если мы найдем pom.xml в рабочей области, запустим сонар. Проблема в том, что я хочу установить переменную сонара 'jobAdditionalProperties', но эта переменная еще не поддерживается плагином job dsl. Что я получил до сих пор:

publishers {
  flexiblePublish {
    condition {
      fileExists('pom.xml', BaseDir.WORKSPACE)
    }
    publisher {
     sonar {
       branch('master')
     }        
    }
  }
}

Я пытался использовать метод настройки, как в документации:

configure { project ->
  project / publishers << 'hudson.plugins.sonar.SonarPublisher' {
    jobAdditionalProperties('..')
 }

Но это не сработает, так как xml вложен в подключаемый модуль гибкой публикации с использованием условного выражения, а xml не создается в нужном месте. XML-дерево выглядит примерно так:

    <publishers>
    <org.jenkins__ci.plugins.flexible__publish.FlexiblePublisher>
        <publishers>
            <org.jenkins__ci.plugins.flexible__publish.ConditionalPublisher>
                <condition class='org.jenkins_ci.plugins.run_condition.core.FileExistsCondition'>
                    <file>pom.xml</file>
                    <baseDir class='org.jenkins_ci.plugins.run_condition.common.BaseDirectory$Workspace'></baseDir>
                </condition>
                <publisherList>
                    <hudson.plugins.sonar.SonarPublisher>
                    <branch></branch>
                    <jobAdditionalProperties></jobAdditionalProperties>

Кто-нибудь понял, как это решить?


person Roger Welin    schedule 10.08.2015    source источник
comment
Делимся ссылкой на документацию, в которой приведены несколько примеров внедрения xml. github.com/jenkinsci/job-dsl-plugin/wiki/ Блок настройки   -  person Fredrik    schedule 12.02.2021


Ответы (1)


Ты на правильном пути. В блоке конфигурации вам нужно перейти к элементу SonarPublisher в структуре XML FlexiblePublisher, например. как это:

configure { project ->
    project / 
            publishers / 
            'org.jenkins__ci.plugins.flexible__publish.FlexiblePublisher' /
            publishers /
            'org.jenkins__ci.plugins.flexible__publish.ConditionalPublisher' /
            publisherList /
            'hudson.plugins.sonar.SonarPublisher' /
            jobAdditionalProperties('..')
}
person daspilker    schedule 10.08.2015
comment
Спасибо! Именно то, что я искал - person Roger Welin; 11.08.2015