jenkins_pipeline_builder 1.6.0 → 1.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +22 -3
  3. data/.rubocop_todo.yml +0 -6
  4. data/.travis.yml +0 -1
  5. data/Dockerfile +30 -0
  6. data/README.md +1 -0
  7. data/jenkins_pipeline_builder.gemspec +5 -8
  8. data/lib/jenkins_pipeline_builder.rb +2 -2
  9. data/lib/jenkins_pipeline_builder/cli/describe.rb +0 -2
  10. data/lib/jenkins_pipeline_builder/cli/helper.rb +3 -2
  11. data/lib/jenkins_pipeline_builder/cli/list.rb +2 -1
  12. data/lib/jenkins_pipeline_builder/cli/pipeline.rb +5 -4
  13. data/lib/jenkins_pipeline_builder/compiler.rb +15 -2
  14. data/lib/jenkins_pipeline_builder/extension_set.rb +5 -1
  15. data/lib/jenkins_pipeline_builder/extensions.rb +6 -2
  16. data/lib/jenkins_pipeline_builder/extensions/build_steps.rb +1 -1
  17. data/lib/jenkins_pipeline_builder/extensions/helpers/job_attributes/parameters_helper.rb +2 -2
  18. data/lib/jenkins_pipeline_builder/extensions/helpers/publishers/cobertura_report_helper.rb +1 -0
  19. data/lib/jenkins_pipeline_builder/extensions/job_attributes.rb +24 -0
  20. data/lib/jenkins_pipeline_builder/extensions/publishers.rb +26 -1
  21. data/lib/jenkins_pipeline_builder/extensions/wrappers.rb +2 -1
  22. data/lib/jenkins_pipeline_builder/generator.rb +7 -2
  23. data/lib/jenkins_pipeline_builder/job.rb +3 -0
  24. data/lib/jenkins_pipeline_builder/job_collection.rb +5 -3
  25. data/lib/jenkins_pipeline_builder/module_registry.rb +4 -0
  26. data/lib/jenkins_pipeline_builder/promotion.rb +1 -0
  27. data/lib/jenkins_pipeline_builder/pull_request_generator.rb +12 -11
  28. data/lib/jenkins_pipeline_builder/remote_dependencies.rb +2 -2
  29. data/lib/jenkins_pipeline_builder/utils.rb +12 -7
  30. data/lib/jenkins_pipeline_builder/version.rb +1 -1
  31. data/lib/jenkins_pipeline_builder/view.rb +3 -1
  32. data/spec/lib/jenkins_pipeline_builder/cli/helper_spec.rb +1 -1
  33. data/spec/lib/jenkins_pipeline_builder/compiler_spec.rb +1 -1
  34. data/spec/lib/jenkins_pipeline_builder/extension_dsl_spec.rb +1 -1
  35. data/spec/lib/jenkins_pipeline_builder/extension_set_spec.rb +3 -3
  36. data/spec/lib/jenkins_pipeline_builder/extensions/build_steps_spec.rb +1 -1
  37. data/spec/lib/jenkins_pipeline_builder/extensions/builders_spec.rb +6 -6
  38. data/spec/lib/jenkins_pipeline_builder/extensions/job_attributes_spec.rb +1 -1
  39. data/spec/lib/jenkins_pipeline_builder/extensions/promotion_conditions_spec.rb +1 -1
  40. data/spec/lib/jenkins_pipeline_builder/extensions/publishers_spec.rb +28 -11
  41. data/spec/lib/jenkins_pipeline_builder/extensions/registered_spec.rb +3 -1
  42. data/spec/lib/jenkins_pipeline_builder/extensions/triggers_spec.rb +1 -1
  43. data/spec/lib/jenkins_pipeline_builder/extensions/wrappers_spec.rb +1 -1
  44. data/spec/lib/jenkins_pipeline_builder/extensions_spec.rb +1 -1
  45. data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/pullrequest_pipeline/project.yaml +1 -0
  46. data/spec/lib/jenkins_pipeline_builder/generator_spec.rb +90 -36
  47. data/spec/lib/jenkins_pipeline_builder/job_collection_spec.rb +2 -2
  48. data/spec/lib/jenkins_pipeline_builder/job_spec.rb +1 -1
  49. data/spec/lib/jenkins_pipeline_builder/module_registry_spec.rb +1 -1
  50. data/spec/lib/jenkins_pipeline_builder/promotion_spec.rb +1 -1
  51. data/spec/lib/jenkins_pipeline_builder/pull_request_generator_spec.rb +16 -16
  52. data/spec/lib/jenkins_pipeline_builder/spec_helper.rb +1 -1
  53. data/spec/lib/jenkins_pipeline_builder/utils_spec.rb +1 -1
  54. data/spec/lib/jenkins_pipeline_builder/view_spec.rb +2 -2
  55. data/spec/requests/pipeline_spec.rb +1 -1
  56. metadata +20 -20
@@ -1,4 +1,4 @@
1
- require File.expand_path('../../spec_helper', __FILE__)
1
+ require File.expand_path('../spec_helper', __dir__)
2
2
 
3
3
  describe 'publishers' do
4
4
  after :each do
@@ -48,16 +48,6 @@ describe 'publishers' do
48
48
  expect(additional_properties_value.first.content).to match ''
49
49
  end
50
50
 
51
- it 'populates branch' do
52
- params = { publishers: { sonar_result: { branch: 'test' } } }
53
-
54
- JenkinsPipelineBuilder.registry.traverse_registry_path('job', params, @n_xml)
55
-
56
- sonar_nodes = @n_xml.root.children.first.children
57
- branch = sonar_nodes.select { |node| node.name == 'branch' }
58
- expect(branch.first.content).to match 'test'
59
- end
60
-
61
51
  it 'populates maven installation name' do
62
52
  params = { publishers: { sonar_result: { maven_installation_name: 'test' } } }
63
53
 
@@ -427,6 +417,33 @@ describe 'publishers' do
427
417
  end
428
418
  end
429
419
 
420
+ context 'google_chat' do
421
+ before :each do
422
+ allow(JenkinsPipelineBuilder.client).to receive(:plugin).and_return double(
423
+ list_installed: { 'google-chat-notification' => '0' }
424
+ )
425
+ end
426
+ it 'generates a configuration' do
427
+ params = { publishers: { google_chat: {} } }
428
+
429
+ JenkinsPipelineBuilder.registry.traverse_registry_path('job', params, @n_xml)
430
+
431
+ publisher = @n_xml.root.children.first
432
+ expect(publisher.name).to match 'io.cnaik.GoogleChatNotification'
433
+ children = publisher.children.map(&:name)
434
+ expect(children).to include 'url'
435
+ expect(children).to include 'message'
436
+ expect(children).to include 'notifyAborted'
437
+ expect(children).to include 'notifyFailure'
438
+ expect(children).to include 'notifyNotBuilt'
439
+ expect(children).to include 'notifySuccess'
440
+ expect(children).to include 'notifyUnstable'
441
+ expect(children).to include 'notifyBackToNormal'
442
+ expect(children).to include 'suppressInfoLoggers'
443
+ expect(children).to include 'sameThreadNotification'
444
+ end
445
+ end
446
+
430
447
  context 'coverage_result' do
431
448
  it 'generates a configuration'
432
449
  end
@@ -1,4 +1,4 @@
1
- require File.expand_path('../../spec_helper', __FILE__)
1
+ require File.expand_path('../spec_helper', __dir__)
2
2
  WRAPPERS = {
3
3
  ansicolor: ['0'],
4
4
  artifactory: ['0'],
@@ -27,6 +27,7 @@ PUBLISHERS = {
27
27
  git: ['0'],
28
28
  github_pr_coverage_status_reporter: ['0'],
29
29
  groovy_postbuild: ['0'],
30
+ google_chat: ['0'],
30
31
  hipchat: ['0', '0.1.9', '2.0.0'],
31
32
  html_publisher: ['0'],
32
33
  junit_result: ['0'],
@@ -69,6 +70,7 @@ JOB_ATTRIBUTES = {
69
70
  hipchat: ['0', '2.0.0'],
70
71
  inject_env_vars_pre_scm: ['0'],
71
72
  parameters: ['0'],
73
+ google_chat: ['0'],
72
74
  shared_workspace: ['0'],
73
75
  prepare_environment: ['0'],
74
76
  priority: ['0'],
@@ -1,4 +1,4 @@
1
- require File.expand_path('../../spec_helper', __FILE__)
1
+ require File.expand_path('../spec_helper', __dir__)
2
2
 
3
3
  describe 'triggers' do
4
4
  after :each do
@@ -1,4 +1,4 @@
1
- require File.expand_path('../../spec_helper', __FILE__)
1
+ require File.expand_path('../spec_helper', __dir__)
2
2
 
3
3
  describe 'wrappers' do
4
4
  after :each do
@@ -1,4 +1,4 @@
1
- require File.expand_path('../spec_helper', __FILE__)
1
+ require File.expand_path('spec_helper', __dir__)
2
2
 
3
3
  describe JenkinsPipelineBuilder::Extension do
4
4
  subject(:extension) { JenkinsPipelineBuilder::Extension.new }
@@ -5,6 +5,7 @@
5
5
  github_site: 'https://github.com'
6
6
  git_org: 'testorg'
7
7
  git_repo_name: 'generator_tests'
8
+ git_branch: 'master'
8
9
 
9
10
  - project:
10
11
  name: PullRequest
@@ -1,4 +1,4 @@
1
- require File.expand_path('../spec_helper', __FILE__)
1
+ require File.expand_path('spec_helper', __dir__)
2
2
 
3
3
  describe JenkinsPipelineBuilder::Generator do
4
4
  before :all do
@@ -89,31 +89,52 @@ describe JenkinsPipelineBuilder::Generator do
89
89
  expect(errors).to be_empty
90
90
  end
91
91
 
92
- it 'produces no errors while creating pipeline TemplatePipeline' do
93
- errors = bootstrap(fixture_path('template_pipeline'), 'TemplatePipeline')
94
- expect(errors).to be_empty
95
- end
92
+ context 'when creating pipeline templates' do
93
+ before(:each) do
94
+ tar_path = File.join(__dir__, 'fixtures/generator_tests/template_pipeline/jobs.tar.gz')
95
+ parsed_url = URI.parse('https://www.test.com')
96
+ file_contents = Zlib::GzipReader.new(File.open(tar_path)).read
97
+ file_object = double
98
+ allow(URI).to receive(:parse).and_return(parsed_url)
99
+ allow(parsed_url).to receive(:open).and_yield('A String')
100
+ allow(Zlib::GzipReader).to receive(:new).and_return(file_object)
101
+ allow(file_object).to receive(:read).and_return(file_contents)
102
+ end
96
103
 
97
- it 'produces no errors while creating pipeline TemplatePipeline_nested' do
98
- errors = bootstrap(fixture_path('template_pipeline_nested'), 'TemplatePipeline_nested')
99
- expect(errors).to be_empty
100
- end
104
+ it 'produces no errors while creating pipeline TemplatePipeline' do
105
+ errors = bootstrap(fixture_path('template_pipeline'), 'TemplatePipeline')
106
+ expect(errors).to be_empty
107
+ end
101
108
 
102
- it 'loads extensions in remote dependencies' do
103
- errors = bootstrap(fixture_path('template_pipeline'), 'TemplatePipeline')
104
- expect(errors).to be_empty
105
- expect(@generator.module_registry.registry[:job][:wrappers].keys).to include :test_wrapper
106
- @generator.module_registry.registry[:job][:wrappers].delete(:test_wrapper)
107
- end
109
+ it 'overrides the remote dependencies with local ones' do
110
+ errors = bootstrap(fixture_path('local_override/remote_and_local'), 'TemplatePipeline')
111
+ expect(errors).to be_empty
112
+ expect(@generator.job_collection.collection['{{name}}-10'][:value][:description]).to eq('Overridden stuff')
113
+ end
108
114
 
109
- it 'overrides the remote dependencies with local ones' do
110
- errors = bootstrap(fixture_path('local_override/remote_and_local'), 'TemplatePipeline')
111
- expect(errors).to be_empty
112
- expect(@generator.job_collection.collection['{{name}}-10'][:value][:description]).to eq('Overridden stuff')
113
- end
115
+ it 'loads extensions in remote dependencies' do
116
+ errors = bootstrap(fixture_path('template_pipeline'), 'TemplatePipeline')
117
+ expect(errors).to be_empty
118
+ expect(@generator.module_registry.registry[:job][:wrappers].keys).to include :test_wrapper
119
+ @generator.module_registry.registry[:job][:wrappers].delete(:test_wrapper)
120
+ end
121
+
122
+ it 'fails to override when there are duplicate local items' do
123
+ expect { bootstrap(fixture_path('local_override/all_local'), 'TemplatePipeline') }.to raise_error(StandardError)
124
+ end
114
125
 
115
- it 'fails to override when there are duplicate local items' do
116
- expect { bootstrap(fixture_path('local_override/all_local'), 'TemplatePipeline') }.to raise_error(StandardError)
126
+ it 'produces no errors while creating pipeline TemplatePipeline_nested' do
127
+ tar_path = File.join(__dir__, 'fixtures/generator_tests/template_pipeline_nested/jobs.tar.gz')
128
+ parsed_url = URI.parse('https://www.test.com')
129
+ file_contents = Zlib::GzipReader.new(File.open(tar_path)).read
130
+ file_object = double
131
+ allow(URI).to receive(:parse).and_return(parsed_url)
132
+ allow(parsed_url).to receive(:open).and_yield('A String')
133
+ allow(Zlib::GzipReader).to receive(:new).and_return(file_object)
134
+ allow(file_object).to receive(:read).and_return(file_contents)
135
+ errors = bootstrap(fixture_path('template_pipeline_nested'), 'TemplatePipeline_nested')
136
+ expect(errors).to be_empty
137
+ end
117
138
  end
118
139
 
119
140
  # Things to check for:
@@ -133,7 +154,10 @@ describe JenkinsPipelineBuilder::Generator do
133
154
  JenkinsPipelineBuilder.registry.registry[:job][:scm_params].clear_installed_version
134
155
  end
135
156
 
136
- let(:path) { File.expand_path('../fixtures/generator_tests/pullrequest_pipeline', __FILE__) }
157
+ let(:pr_master) { { number: 1, base: 'master' } }
158
+ let(:pr_not_master) { { number: 2, base: 'not-master' } }
159
+ let(:open_prs) { [pr_master, pr_not_master] }
160
+ let(:path) { File.expand_path('fixtures/generator_tests/pullrequest_pipeline', __dir__) }
137
161
  it 'produces no errors while creating pipeline PullRequest' do
138
162
  job_name = 'PullRequest'
139
163
  pr_generator = double('pr_generator')
@@ -145,7 +169,7 @@ describe JenkinsPipelineBuilder::Generator do
145
169
  .and_return(pr_generator)
146
170
  expect(pr_generator).to receive(:delete_closed_prs)
147
171
  expect(pr_generator).to receive(:convert!)
148
- expect(pr_generator).to receive(:open_prs).and_return [1]
172
+ expect(pr_generator).to receive(:open_prs).and_return [pr_master]
149
173
  success = @generator.pull_request(path, job_name)
150
174
  expect(success).to be_truthy
151
175
  end
@@ -161,7 +185,7 @@ describe JenkinsPipelineBuilder::Generator do
161
185
  .and_return(pr_generator)
162
186
  expect(pr_generator).to receive(:delete_closed_prs)
163
187
  expect(pr_generator).to receive(:convert!).twice
164
- expect(pr_generator).to receive(:open_prs).and_return [1, 2]
188
+ expect(pr_generator).to receive(:open_prs).and_return open_prs
165
189
  expect(@generator.pull_request(path, job_name)).to be_truthy
166
190
  end
167
191
 
@@ -175,13 +199,33 @@ describe JenkinsPipelineBuilder::Generator do
175
199
  git_repo_name: 'generator_tests'))
176
200
  .and_return(pr_generator)
177
201
  expect(pr_generator).to receive(:delete_closed_prs)
178
- allow(pr_generator).to receive(:convert!) do |job_collection, pr|
179
- job_collection.defaults[:value][:application_name] = "testapp-PR#{pr}"
202
+ allow(pr_generator).to receive(:convert!) do |job_collection, pr_number|
203
+ job_collection.defaults[:value][:application_name] = "testapp-PR#{pr_number}"
180
204
  end
181
- expect(pr_generator).to receive(:open_prs).and_return [1, 2]
205
+ expect(pr_generator).to receive(:open_prs).and_return open_prs
182
206
  expect(@generator.pull_request(path, job_name)).to be_truthy
183
207
  expect(@generator.job_collection.projects.first[:settings][:application_name]).to eq 'testapp-PR2'
184
208
  end
209
+
210
+ it 'correctly creates jobs only for the base branch' do
211
+ job_name = 'PullRequest'
212
+ pr_generator = double('pr_generator')
213
+ expect(JenkinsPipelineBuilder::PullRequestGenerator).to receive(:new)
214
+ .with(hash_including(
215
+ application_name: 'testapp',
216
+ github_site: 'https://github.com',
217
+ git_org: 'testorg',
218
+ git_repo_name: 'generator_tests'
219
+ )).and_return(pr_generator)
220
+
221
+ expect(pr_generator).to receive(:open_prs).and_return open_prs
222
+ expect(pr_generator).to receive(:delete_closed_prs)
223
+ expect(pr_generator).to receive(:convert!)
224
+ .with(instance_of(JenkinsPipelineBuilder::JobCollection), pr_master[:number])
225
+ .once
226
+
227
+ expect(@generator.pull_request(path, job_name, true)).to be_truthy
228
+ end
185
229
  # Things to check for
186
230
  # Fail - no PR job type found
187
231
  # Encounters failure during build process
@@ -204,26 +248,26 @@ describe JenkinsPipelineBuilder::Generator do
204
248
  end
205
249
 
206
250
  it 'loads a yaml collection from a path' do
207
- path = File.expand_path('../fixtures/generator_tests/test_yaml_files', __FILE__)
251
+ path = File.expand_path('fixtures/generator_tests/test_yaml_files', __dir__)
208
252
  @generator.job_collection.load_from_path path
209
253
  end
210
254
  it 'loads a json collection from a path' do
211
- path = File.expand_path('../fixtures/generator_tests/test_json_files', __FILE__)
255
+ path = File.expand_path('fixtures/generator_tests/test_json_files', __dir__)
212
256
  @generator.job_collection.load_from_path path
213
257
  end
214
258
  it 'loads both yaml and json files from a path' do
215
- path = File.expand_path('../fixtures/generator_tests/test_combo_files', __FILE__)
259
+ path = File.expand_path('fixtures/generator_tests/test_combo_files', __dir__)
216
260
  @generator.job_collection.load_from_path path
217
261
  end
218
262
 
219
263
  it 'errors when reading a bad yaml file' do
220
- path = File.expand_path('../fixtures/generator_tests/test_bad_yaml_files', __FILE__)
264
+ path = File.expand_path('fixtures/generator_tests/test_bad_yaml_files', __dir__)
221
265
  expect { @generator.job_collection.load_from_path path }.to raise_error(
222
266
  CustomErrors::ParseError, /There was an error while parsing a file/
223
267
  )
224
268
  end
225
269
  it 'errors when reading a bad json file' do
226
- path = File.expand_path('../fixtures/generator_tests/test_bad_json_files', __FILE__)
270
+ path = File.expand_path('fixtures/generator_tests/test_bad_json_files', __dir__)
227
271
  expect { @generator.job_collection.load_from_path path }.to raise_error(
228
272
  CustomErrors::ParseError, /There was an error while parsing a file/
229
273
  )
@@ -235,7 +279,7 @@ describe JenkinsPipelineBuilder::Generator do
235
279
  allow(JenkinsPipelineBuilder).to receive(:debug).and_return true
236
280
  job_name = 'test_job'
237
281
  body = ''
238
- test_path = File.expand_path('../fixtures/generator_tests', __FILE__)
282
+ test_path = File.expand_path('fixtures/generator_tests', __dir__)
239
283
  File.open("#{test_path}/#{job_name}.xml", 'r') do |f|
240
284
  f.each_line do |line|
241
285
  body << line
@@ -251,7 +295,7 @@ describe JenkinsPipelineBuilder::Generator do
251
295
 
252
296
  describe '#projects' do
253
297
  it 'returns a list of projects' do
254
- path = File.expand_path('../fixtures/generator_tests/multi_project', __FILE__)
298
+ path = File.expand_path('fixtures/generator_tests/multi_project', __dir__)
255
299
  expect(@generator.projects(path)).to eq %w[SamplePipeline1 SamplePipeline2 SamplePipeline3]
256
300
  end
257
301
  end
@@ -269,9 +313,19 @@ describe JenkinsPipelineBuilder::Generator do
269
313
  File.delete(file_path) if File.exist?(file_path)
270
314
  end
271
315
  end
316
+
272
317
  it 'generates xml and saves to disk without sending jobs to the server' do
318
+ tar_path = File.join(__dir__, 'fixtures/generator_tests/template_pipeline_nested/jobs.tar.gz')
319
+ parsed_url = URI.parse('https://www.test.com')
320
+ file_contents = Zlib::GzipReader.new(File.open(tar_path)).read
321
+ file_object = double
322
+ allow(URI).to receive(:parse).and_return(parsed_url)
323
+ allow(parsed_url).to receive(:open).and_yield('A String')
324
+ allow(Zlib::GzipReader).to receive(:new).and_return(file_object)
325
+ allow(file_object).to receive(:read).and_return(file_contents)
326
+
273
327
  job_name = 'TemplatePipeline'
274
- path = File.expand_path('../fixtures/generator_tests/template_pipeline', __FILE__)
328
+ path = File.expand_path('fixtures/generator_tests/template_pipeline', __dir__)
275
329
  errors = @generator.file(path, job_name)
276
330
  expect(errors).to be_empty
277
331
  expect(File.exist?("out/xml/#{job_name}-10.xml")).to be true
@@ -1,4 +1,4 @@
1
- require File.expand_path('../spec_helper', __FILE__)
1
+ require File.expand_path('spec_helper', __dir__)
2
2
 
3
3
  describe JenkinsPipelineBuilder::JobCollection do
4
4
  before :all do
@@ -21,7 +21,7 @@ describe JenkinsPipelineBuilder::JobCollection do
21
21
 
22
22
  context '#load_from_path' do
23
23
  before :all do
24
- path = File.expand_path('../fixtures/job_collection/', __FILE__)
24
+ path = File.expand_path('fixtures/job_collection', __dir__)
25
25
  described_class.new.load_from_path path
26
26
  end
27
27
 
@@ -1,4 +1,4 @@
1
- require File.expand_path('../spec_helper', __FILE__)
1
+ require File.expand_path('spec_helper', __dir__)
2
2
 
3
3
  describe JenkinsPipelineBuilder::Job do
4
4
  before :all do
@@ -1,4 +1,4 @@
1
- require File.expand_path('../spec_helper', __FILE__)
1
+ require File.expand_path('spec_helper', __dir__)
2
2
 
3
3
  describe JenkinsPipelineBuilder::ModuleRegistry do
4
4
  after :each do
@@ -1,4 +1,4 @@
1
- require File.expand_path('../spec_helper', __FILE__)
1
+ require File.expand_path('spec_helper', __dir__)
2
2
 
3
3
  describe JenkinsPipelineBuilder::Promotion do
4
4
  before :all do
@@ -1,4 +1,4 @@
1
- require File.expand_path('../spec_helper', __FILE__)
1
+ require File.expand_path('spec_helper', __dir__)
2
2
  require 'json'
3
3
 
4
4
  describe JenkinsPipelineBuilder::PullRequestGenerator do
@@ -8,7 +8,7 @@ describe JenkinsPipelineBuilder::PullRequestGenerator do
8
8
  let(:git_repo_name) { 'git_repo' }
9
9
  let(:prs) { (1..10).map { |n| "#{application_name}-PR#{n}" } }
10
10
  let(:closed_prs) { (1..6).map { |n| "#{application_name}-PR#{n}" } }
11
- let(:open_prs_json) { (7..10).map { |n| { number: n } }.to_json }
11
+ let(:open_prs_json) { (7..10).map { |n| { number: n, base: { ref: 'master' } } }.to_json }
12
12
  let(:url) { "#{github_site}/api/v3/repos/#{git_org}/#{git_repo_name}/pulls" }
13
13
  let(:params) do
14
14
  {
@@ -91,41 +91,41 @@ describe JenkinsPipelineBuilder::PullRequestGenerator do
91
91
  .to_return(status: 200, body: open_prs_json, headers: {})
92
92
  end
93
93
 
94
+ let(:pr_number) { 8 }
95
+
94
96
  it 'converts the job application name' do
95
97
  collection = job_collection.clone
96
- subject.convert! collection, 8
97
- expect(collection.defaults[:value][:application_name]).to eq "#{application_name}-PR8"
98
+ subject.convert! collection, pr_number
99
+ expect(collection.defaults[:value][:application_name]).to eq "#{application_name}-PR#{pr_number}"
98
100
  end
99
101
 
100
102
  it 'provides the PR number to the job settings' do
101
103
  collection = job_collection.clone
102
- subject.convert! collection, 8
103
- expect(collection.defaults[:value][:pull_request_number]).to eq '8'
104
+ subject.convert! collection, pr_number
105
+ expect(collection.defaults[:value][:pull_request_number]).to eq pr_number.to_s
104
106
  end
105
107
 
106
108
  it 'overrides the git params' do
107
- pr = 8
108
109
  collection = job_collection.clone
109
- subject.convert! collection, pr
110
+ subject.convert! collection, pr_number
110
111
  expect(collection.jobs.first[:value]).to eq(
111
- scm_branch: "origin/pr/#{pr}/head",
112
+ scm_branch: "origin/pr/#{pr_number}/head",
112
113
  scm_params: {
113
- refspec: "refs/pull/#{pr}/head:refs/remotes/origin/pr/#{pr}/head",
114
- changelog_to_branch: { remote: 'origin', branch: "pr/#{pr}/head" },
114
+ refspec: "refs/pull/#{pr_number}/head:refs/remotes/origin/pr/#{pr_number}/head",
115
+ changelog_to_branch: { remote: 'origin', branch: "pr/#{pr_number}/head" },
115
116
  random: 'foo'
116
117
  }
117
118
  )
118
119
  end
119
120
 
120
121
  it 'does not override extra params' do
121
- pr = 8
122
122
  collection = job_collection.clone
123
- subject.convert! collection, pr
123
+ subject.convert! collection, pr_number
124
124
  expect(collection.jobs.first[:value]).to eq(
125
- scm_branch: "origin/pr/#{pr}/head",
125
+ scm_branch: "origin/pr/#{pr_number}/head",
126
126
  scm_params: {
127
- refspec: "refs/pull/#{pr}/head:refs/remotes/origin/pr/#{pr}/head",
128
- changelog_to_branch: { remote: 'origin', branch: "pr/#{pr}/head" },
127
+ refspec: "refs/pull/#{pr_number}/head:refs/remotes/origin/pr/#{pr_number}/head",
128
+ changelog_to_branch: { remote: 'origin', branch: "pr/#{pr_number}/head" },
129
129
  random: 'foo'
130
130
  }
131
131
  )
@@ -6,7 +6,7 @@ require 'simplecov-rcov'
6
6
  require 'webmock/rspec'
7
7
  require 'equivalent-xml'
8
8
 
9
- require File.expand_path('../../../../lib/jenkins_pipeline_builder', __FILE__)
9
+ require File.expand_path('../../../lib/jenkins_pipeline_builder', __dir__)
10
10
 
11
11
  RSpec::Matchers.define :have_min_version do |version|
12
12
  match do |base|
@@ -1,4 +1,4 @@
1
- require File.expand_path('../spec_helper', __FILE__)
1
+ require File.expand_path('spec_helper', __dir__)
2
2
 
3
3
  describe JenkinsPipelineBuilder::Utils do
4
4
  let(:utils) { JenkinsPipelineBuilder::Utils }
@@ -1,4 +1,4 @@
1
- require File.expand_path('../spec_helper', __FILE__)
1
+ require File.expand_path('spec_helper', __dir__)
2
2
 
3
3
  describe JenkinsPipelineBuilder::View do
4
4
  before(:all) do
@@ -12,7 +12,7 @@ describe JenkinsPipelineBuilder::View do
12
12
  generator = JenkinsPipelineBuilder.generator
13
13
  @view = JenkinsPipelineBuilder::View.new(generator)
14
14
  end
15
- let(:path) { File.expand_path('../fixtures/view_test/', __FILE__) }
15
+ let(:path) { File.expand_path('fixtures/view_test', __dir__) }
16
16
  let(:view) { { name: 'view', parent_view: 'ParentView', type: 'categorizedView', description: 'ViewTest', regex: 'ViewTest.*', groupingRules: [{ groupRegex: 'ViewTest-1.*', namingRule: '1. Commit Stage' }] } }
17
17
 
18
18
  describe '#generate' do