2015-12-21 2 views
5

Может ли кто-нибудь дать мне полезную ссылку, где я могу найти информацию о преобразовании комплекса xml конфигурации для работы Jenkins?Jenkins xml configuration to Groovy-based Jenkins Job DSL

Вот Дженкинс работа пример:

<project> 
    <actions/> 
    <description>Description</description> 
    <logRotator class="hudson.tasks.LogRotator"> 
     <!-- ...--> 
    </logRotator> 
    <keepDependencies>false</keepDependencies> 
    <properties> 
     <hudson.model.ParametersDefinitionProperty/><!-- ...--> 
    </properties> 
    <scm class="org.jenkinsci.plugins.multiplescms.MultiSCM" plugin="[email protected]"> 
     <scms> 
      <hudson.plugins.git.GitSCM plugin="[email protected]"/><!-- ...--> 
      <hudson.plugins.git.GitSCM plugin="[email protected]"/><!-- ...--> 
     </scms> 
    </scm> 
    <canRoam>true</canRoam> 
    <disabled>false</disabled> 
    <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> 
    <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding> 
    <jdk>Default</jdk> 
    <triggers> 
     <hudson.triggers.TimerTrigger/><!-- ...--> 
    </triggers> 
    <concurrentBuild>false</concurrentBuild> 
    <customWorkspace>$HUDSON_WD/$REVISION/checkout</customWorkspace> 
    <builders/> 
    <publishers> 
     <hudson.plugins.globalenvvar.GlobalEnvironmentVariablePublisher plugin="[email protected]"/><!-- ...-->    
     <hudson.plugins.parameterizedtrigger.BuildTrigger plugin="[email protected]"/><!-- ...--> 
     <hudson.plugins.templateproject.ProxyPublisher plugin="[email protected]"/><!-- ...--> 
    </publishers> 
    <buildWrappers> 
     <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="[email protected]"/> 
    </buildWrappers> 
</project> 
+2

Я думаю, что вы спрашиваете это, как вы преобразовать свою текущую работу в Jenkins для Jenkins работы DSL? –

+0

@Steve Campbell, да. – Arthur

ответ

9

По моему опыту, это полностью ручной процесс переписывания. Справочный материал находится в https://jenkinsci.github.io/job-dsl-plugin/#.

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

Процесс преобразования выглядит следующим образом:

  1. пройти через каждую сконфигурированную собственность (через Jenkins GUI), например, «Отбросить старые сборки».
  2. Определите, имеет ли DSL встроенную поддержку этого элемента. Если это так, перепишите его в DSL. Например, logRotator предоставляет функциональность «Отменить старые сборки».
  3. Если напрямую не поддерживается DSL, вы должны вручную использовать configure для вывода xml. Это довольно сложно, и этого можно избежать, если это вообще возможно.

Если вы не уверены, какой плагин предоставляет элемент задания, вы можете часто видеть имя плагина в справочном тексте для этого элемента (щелкните значок значка вопроса). В противном случае элемент xml часто содержит имя плагина.

Также полезно знать, что элементы задания разбиваются таким же образом в DSL, как и на экране Configure в Jenkins. Поэтому, если это триггер, вы можете найти его в DSL под номером triggers.

Простой пример (я знаю, ваш будет гораздо сложнее):

freeStyleJob("Arthur's Example") { 
    description('Description') 
    logRotator(30) 
} 
Смежные вопросы