From 721080d62e127b5af748c851855a009a421a54ab Mon Sep 17 00:00:00 2001 From: Brian Carroll Date: Tue, 11 Apr 2017 09:37:38 -0400 Subject: [PATCH] add support for hudson.plugins.ws__cleanup.PreBuildCleanup plugin (#116) --- lib/jenkins_pipeline_builder/extensions/wrappers.rb | 12 ++++++++++++ .../extensions/registered_spec.rb | 3 ++- .../extensions/wrappers_spec.rb | 13 +++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/lib/jenkins_pipeline_builder/extensions/wrappers.rb b/lib/jenkins_pipeline_builder/extensions/wrappers.rb index d07c346..c59ecaf 100644 --- a/lib/jenkins_pipeline_builder/extensions/wrappers.rb +++ b/lib/jenkins_pipeline_builder/extensions/wrappers.rb @@ -243,3 +243,15 @@ end end end + +wrapper do + name :prebuild_cleanup + plugin_id 'ws-cleanup' + description 'Deletes workspace before build starts.' + jenkins_name 'Delete workspace before build starts' + announced false + + xml do |_| + send('hudson.plugins.ws__cleanup.PreBuildCleanup', 'plugin' => 'ws-cleanup') + end +end diff --git a/spec/lib/jenkins_pipeline_builder/extensions/registered_spec.rb b/spec/lib/jenkins_pipeline_builder/extensions/registered_spec.rb index 4cf62bd..acb2653 100644 --- a/spec/lib/jenkins_pipeline_builder/extensions/registered_spec.rb +++ b/spec/lib/jenkins_pipeline_builder/extensions/registered_spec.rb @@ -8,7 +8,8 @@ nodejs: ['0'], rvm: ['0', '0.5'], timestamp: ['0'], - xvfb: ['0'] + xvfb: ['0'], + prebuild_cleanup: ['0'] }.freeze PUBLISHERS = { diff --git a/spec/lib/jenkins_pipeline_builder/extensions/wrappers_spec.rb b/spec/lib/jenkins_pipeline_builder/extensions/wrappers_spec.rb index 1674be4..6be229a 100644 --- a/spec/lib/jenkins_pipeline_builder/extensions/wrappers_spec.rb +++ b/spec/lib/jenkins_pipeline_builder/extensions/wrappers_spec.rb @@ -116,4 +116,17 @@ expect(node.first.content).to match 'Node-0.10.24' end end + + context 'prebuild_cleanup' do + before :each do + JenkinsPipelineBuilder.registry.registry[:job][:wrappers][:prebuild_cleanup].installed_version = '0.0' + end + + it 'generates correct xml' do + JenkinsPipelineBuilder.registry.traverse_registry_path('job', { wrappers: { prebuild_cleanup: true } }, @n_xml) + + node = @n_xml.root.xpath('//buildWrappers/hudson.plugins.ws__cleanup.PreBuildCleanup') + expect(node.first).to_not be_nil + end + end end