jenkins_pipeline_builder 1.6.0 → 1.10.0

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.
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