2015-06-18 3 views
0

Если я работаю на плагин и хочу, чтобы перейти от использования такого шага так:Как мы расширяем рабочий процесс Jenkins dsl?

step([$class: 'Gradle', 
      switches: "-PenableInstallerDistribution=true", 
      tasks: 'build install', 
      gradleName: '(Default)', 
      useWrapper: true, 
      makeExecutable: true, 
      fromRootBuildScriptDir: true, 
      useWorkspaceAsHome: true]) 

к хорошим Dsl элементов вроде так:

gradle switches: "-PenableInstallerDistribution=true", 
     tasks: 'build install', 
     gradleName: '(Default)', 
     useWrapper: true, 
     makeExecutable: true, 
     fromRootBuildScriptDir: true, 
     useWorkspaceAsHome: true 

и, возможно, самое главного, показать в генераторе фрагментов, что мне делать? Я просмотрел документы, которые мог найти, но не могу найти никаких советов по расширению dsl.

ответ

1

Прежде всего, если вы на самом деле не настраивая конфигурацию шаг за опуская step, то это, вероятно, это пустая трата времени, так как в будущем пересмотр ядра Workflow может включать в себя синтаксический сахар для «metasteps» как step, checkout , и (сейчас) wrap. (И любой SimpleBuildStep уже проявляется в Snippet генератора под step.)

Тем не менее, если вам нужно создать шаг первого класса, вам нужно будет добавить плагин зависимость от workflow-step-api, и, как правило, распространяются AbstractStepImpl, AbstractStepDescriptorImpl, и AbstractStepExecutionImpl.

Если вы пытаетесь осуществить JENKINS-27393 то я бы сказал, что полезная реализация должна ждать инфраструктурной JENKINS-26055, а просто оборачивать существующие Gradle строителя не позволят поток выжить перезагрузки Jenkins (или ведомое отключение) в в середине этого шага.

+0

Я был очень рад узнать, что все, что реализует SimpleBuildStep, появляется под фрагментом «Step». Это определенно делает первоклассный шаг очень маленьким, а не огромным. Я не пытаюсь закрыть ошибку градиента. На самом деле мы просто пытаемся перенести нашу существующую сборку, чтобы работать с рабочими процессами - что кажется удивительным, - и если бы мои изменения работали достаточно хорошо для нас, я собирался увидеть официальное подтверждение. –

+0

Да, это похоже на шаг в правильном направлении, просто остерегайтесь, что без JENKINS-26055 или [JENKINS-25879] (https://issues.jenkins-ci.org/browse/JENKINS-25879) это не будет практично, чтобы запустить серьезную Gradle построить таким образом. –

+0

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

Смежные вопросы