jenkins_pipeline_builder 0.7.5 → 0.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5a4d0e3df2e5d318482850e9ab14e70a6c19af6a
4
- data.tar.gz: b895a30acb5eb9789b93d16de42d2d80a55513d5
3
+ metadata.gz: 27bfce0d8e1ed49ce1f7d1712159c7085aab313e
4
+ data.tar.gz: d441dec1b686f09b8fc0a31f8f29c429ff2c33b4
5
5
  SHA512:
6
- metadata.gz: c9d07ce44d5cf40658132e1d1036d104112793918227ca1612159a1ebeffcf6ea1149ed85bec3713a61ac0ce291a28ae399ef20cc587bf71441f89d9a9489c96
7
- data.tar.gz: b9cf45141f6908305fd143202a8330dc2a1a6c6665e53916a3b24252c5d105db7005b96136e440b95ab279ecc5a5ab2dd86162e333d1eb5f71f69d4eabcee94b
6
+ metadata.gz: 73cf874e69635ebcb6e463d190bca2672c9f05dfbde153167abb70e4e333d55cc4aa122ae7c3518e36998d444162c548d41231440a85d4cf35609958d77224da
7
+ data.tar.gz: 572698d42843aa3a019ac5a3642f87282450e3c9bc0d69d146b17de3d21a9e2aca784b096b1073d38f255f75ea876bd9f2c2da1771f7e8473d454f29123f1863
data/README.md CHANGED
@@ -87,7 +87,7 @@ Here's a high level overview of what's available:
87
87
  ```yaml
88
88
  - job:
89
89
  name: nameStr # Name of your Job
90
- job_type: free_style # Optional [free_style|multi_project]
90
+ job_type: free_style # Optional [free_style|multi_project|job_dsl|build_flow|pull_request_generator]
91
91
  concurrent_build: true or false
92
92
  discard_old: # Discard old builds after:
93
93
  days: 1 # Optional, number of days after which the build is deleted
@@ -78,7 +78,14 @@ job_attribute do
78
78
  xpath('//scm/skipTag').remove if params[:skip_tag]
79
79
  xpath('//scm/excludedRegions').remove if params[:excluded_regions]
80
80
  xpath('//scm/includedRegions').remove if params[:included_regions]
81
+ end
81
82
 
83
+ before version: '2.0' do |params|
84
+ if params[:remote_name] || params[:refspec]
85
+ remote_url = xpath('//scm/userRemoteConfigs/hudson.plugins.git.UserRemoteConfig/url').first
86
+ params[:remote_url] = remote_url.content if remote_url
87
+ xpath('//scm/userRemoteConfigs').remove
88
+ end
82
89
  end
83
90
 
84
91
  xml path: '//scm' do |params|
@@ -99,6 +106,46 @@ job_attribute do
99
106
  excludedRegions params[:excluded_regions] if params[:excluded_regions]
100
107
  includedRegions params[:included_regions] if params[:included_regions]
101
108
  end
109
+
110
+ xml version: '2.0', path: '//scm' do |params|
111
+ configVersion 2
112
+ userRemoteConfigs do
113
+ send('hudson.plugins.git.UserRemoteConfig') do
114
+ name params[:remote_name] if params[:remote_name]
115
+ refspec params[:refspec] if params[:refspec]
116
+ url params[:remote_url] if params[:remote_url]
117
+ credentialsId params[:credentials_id] if params[:credentials_id]
118
+ end
119
+ end
120
+ doGenerateSubmoduleConfigurations false
121
+ submoduleCfg
122
+ extensions do
123
+ send('hudson.plugins.git.extensions.impl.WipeWorkspace') if params[:wipe_workspace]
124
+ if params[:local_branch]
125
+ send('hudson.plugins.git.extensions.impl.LocalWorkspace') do
126
+ localBranch params[:local_branch]
127
+ end
128
+ end
129
+ if params[:recursive_update]
130
+ send('hudson.plugins.git.extensions.impl.SubmoduleOption') do
131
+ disableSubmodules false
132
+ recursiveSubmodules true
133
+ trackingSubmodules false
134
+ end
135
+ end
136
+ if params[:excluded_users]
137
+ send('hudson.plugins.git.extensions.impl.UserExclusion') do
138
+ excludedUser params[:excluded_users]
139
+ end
140
+ end
141
+ if params[:included_regions] || params[:excluded_regions]
142
+ send('hudson.plugins.git.extensions.impl.PathRestrictions') do
143
+ includedRegions params[:included_regions] if params[:included_regions]
144
+ excludedRegions params[:excluded_regions] if params[:excluded_regions]
145
+ end
146
+ end
147
+ end
148
+ end
102
149
  end
103
150
 
104
151
  job_attribute do
@@ -102,6 +102,15 @@ publisher do
102
102
  configVersion params[:configVersion] || 2
103
103
  pushMerge params[:'push-merge'] || false
104
104
  pushOnlyIfSuccess params[:'push-only-if-success'] || false
105
+ if params[:tag_name]
106
+ tagsToPush do
107
+ send 'hudson.plugins.git.GitPublisher_-TagToPush' do
108
+ targetRepoName params[:target_repo]
109
+ tagName params[:tag_name]
110
+ createTag params[:create_tag] || false
111
+ end
112
+ end
113
+ end
105
114
  branchesToPush do
106
115
  send('hudson.plugins.git.GitPublisher_-BranchToPush') do
107
116
  targetRepoName params[:targetRepoName] || 'origin'
@@ -21,5 +21,5 @@
21
21
  #
22
22
 
23
23
  module JenkinsPipelineBuilder
24
- VERSION = '0.7.5'
24
+ VERSION = '0.7.6'
25
25
  end
@@ -40,8 +40,6 @@ describe 'job_attributes' do
40
40
 
41
41
  context 'scm params' do
42
42
  before :each do
43
- allow(JenkinsPipelineBuilder.client).to receive(:plugin).and_return double(
44
- list_installed: { 'git' => '20.0' })
45
43
 
46
44
  builder = Nokogiri::XML::Builder.new { |xml| xml.scm }
47
45
  @n_xml = builder.doc
@@ -54,37 +52,108 @@ describe 'job_attributes' do
54
52
  end
55
53
  end
56
54
  end
55
+ context '>= 2.0' do
56
+ before :each do
57
+ JenkinsPipelineBuilder.registry.registry[:job][:scm_params].installed_version = '2.0'
58
+ end
57
59
 
58
- it 'writes one block when both refspec and remote_name' do
59
- params = { scm_params: { refspec: :bar, remote_name: :foo }, scm_url: 'http://foo.com' }
60
+ it 'sets the config version' do
61
+ params = { scm_params: { refspec: :bar, remote_name: :foo }, scm_url: 'http://foo.com' }
60
62
 
61
- JenkinsPipelineBuilder.registry.traverse_registry_path('job', params, @n_xml)
63
+ JenkinsPipelineBuilder.registry.traverse_registry_path('job', params, @n_xml)
64
+
65
+ scm_config = @n_xml.xpath('//scm').first
66
+
67
+ expect(scm_config.css('configVersion').first).to be_truthy
68
+ expect(scm_config.css('configVersion').first.content).to eq '2'
69
+ end
70
+
71
+ it 'writes a single block if refspec and remote_name are specified' do
72
+ params = { scm_params: { refspec: :bar, remote_name: :foo }, scm_url: 'http://foo.com' }
62
73
 
63
- remote_config = @n_xml.root.children.first.children.first
74
+ JenkinsPipelineBuilder.registry.traverse_registry_path('job', params, @n_xml)
64
75
 
65
- expect(remote_config.name).to match 'hudson.plugins.git.UserRemoteConfig'
76
+ remote_config = @n_xml.xpath('//scm/userRemoteConfigs/hudson.plugins.git.UserRemoteConfig').first
66
77
 
67
- expect(remote_config.css('name').first).to be_truthy
68
- expect(remote_config.css('refspec').first).to be_truthy
78
+ expect(remote_config.name).to match 'hudson.plugins.git.UserRemoteConfig'
69
79
 
70
- expect(remote_config.css('name').first.content).to eq 'foo'
71
- expect(remote_config.css('refspec').first.content).to eq 'bar'
80
+ expect(remote_config.css('name').first).to be_truthy
81
+ expect(remote_config.css('refspec').first).to be_truthy
82
+
83
+ expect(remote_config.css('name').first.content).to eq 'foo'
84
+ expect(remote_config.css('refspec').first.content).to eq 'bar'
85
+ end
86
+
87
+ it 'sets all the options' do
88
+ params = {
89
+ scm_params: {
90
+ local_branch: :local,
91
+ recursive_update: true,
92
+ excluded_users: :exclude_me,
93
+ included_regions: :included_region,
94
+ excluded_regions: :excluded_region
95
+ },
96
+ scm_url: 'http://foo.com'
97
+ }
98
+
99
+ JenkinsPipelineBuilder.registry.traverse_registry_path('job', params, @n_xml)
100
+
101
+ scm_config = @n_xml.xpath('//scm').first
102
+
103
+ expect(scm_config.css('disableSubmodules').first).to be_truthy
104
+ expect(scm_config.css('recursiveSubmodules').first).to be_truthy
105
+ expect(scm_config.css('trackingSubmodules').first).to be_truthy
106
+ expect(scm_config.css('localBranch').first).to be_truthy
107
+ expect(scm_config.css('excludedUser').first).to be_truthy
108
+ expect(scm_config.css('includedRegions').first).to be_truthy
109
+ expect(scm_config.css('excludedRegions').first).to be_truthy
110
+
111
+ expect(scm_config.css('disableSubmodules').first.content).to eq 'false'
112
+ expect(scm_config.css('recursiveSubmodules').first.content).to eq 'true'
113
+ expect(scm_config.css('trackingSubmodules').first.content).to eq 'false'
114
+ expect(scm_config.css('localBranch').first.content).to eq 'local'
115
+ expect(scm_config.css('excludedUser').first.content).to eq 'exclude_me'
116
+ expect(scm_config.css('includedRegions').first.content).to eq 'included_region'
117
+ expect(scm_config.css('excludedRegions').first.content).to eq 'excluded_region'
118
+ end
72
119
  end
73
120
 
74
- it 'using remote_name does not remove the remote url' do
75
- params = { scm_params: { remote_name: :foo }, scm_url: 'http://foo.com' }
121
+ context '<2.0' do
122
+ before :each do
123
+ JenkinsPipelineBuilder.registry.registry[:job][:scm_params].installed_version = '1.0'
124
+ end
76
125
 
77
- JenkinsPipelineBuilder.registry.traverse_registry_path('job', params, @n_xml)
126
+ it 'writes one block when both refspec and remote_name' do
127
+ params = { scm_params: { refspec: :bar, remote_name: :foo }, scm_url: 'http://foo.com' }
128
+
129
+ JenkinsPipelineBuilder.registry.traverse_registry_path('job', params, @n_xml)
130
+
131
+ remote_config = @n_xml.root.children.first.children.first
132
+
133
+ expect(remote_config.name).to match 'hudson.plugins.git.UserRemoteConfig'
134
+
135
+ expect(remote_config.css('name').first).to be_truthy
136
+ expect(remote_config.css('refspec').first).to be_truthy
78
137
 
79
- remote_config = @n_xml.root.children.first.children.first
138
+ expect(remote_config.css('name').first.content).to eq 'foo'
139
+ expect(remote_config.css('refspec').first.content).to eq 'bar'
140
+ end
141
+
142
+ it 'using remote_name does not remove the remote url' do
143
+ params = { scm_params: { remote_name: :foo }, scm_url: 'http://foo.com' }
144
+
145
+ JenkinsPipelineBuilder.registry.traverse_registry_path('job', params, @n_xml)
80
146
 
81
- expect(remote_config.name).to match 'hudson.plugins.git.UserRemoteConfig'
147
+ remote_config = @n_xml.root.children.first.children.first
82
148
 
83
- expect(remote_config.css('name').first).to be_truthy
84
- expect(remote_config.css('url').first).to be_truthy
149
+ expect(remote_config.name).to match 'hudson.plugins.git.UserRemoteConfig'
85
150
 
86
- expect(remote_config.css('name').first.content).to eq 'foo'
87
- expect(remote_config.css('url').first.content).to eq 'http://foo.com'
151
+ expect(remote_config.css('name').first).to be_truthy
152
+ expect(remote_config.css('url').first).to be_truthy
153
+
154
+ expect(remote_config.css('name').first.content).to eq 'foo'
155
+ expect(remote_config.css('url').first.content).to eq 'http://foo.com'
156
+ end
88
157
  end
89
158
  end
90
159
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jenkins_pipeline_builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.5
4
+ version: 0.7.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Igor Moochnick
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-09-10 00:00:00.000000000 Z
12
+ date: 2014-09-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri