rubyjobbuilderdsl 0.0.1 → 0.0.2

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: 6bf36a3d6acef2811454409e2d17b5aac0a1f267
4
- data.tar.gz: 5556df1f50de274abafa2283f4c48f9c3745226e
3
+ metadata.gz: 05072639c80e948ce5e1053b87ff7a258b5e58f5
4
+ data.tar.gz: bab165330d687fb8c1db43b5782b8eae7f6bee06
5
5
  SHA512:
6
- metadata.gz: 10878f1b0f159757f3b2bb09f3a6f9fa05bac347e1a3921b9522f1702bfe433e2ea4d289aeb721017918d326242b9088a8c12a2e6d06858c5418f429983a55d3
7
- data.tar.gz: 83bd753b5bb25d458f44c5e872c24849a293d22317a9820d32a486474c8698ac020f3fc007418a79ae2d45ccb95f9e6b619e720098cad8ca1ef40e6d4905f302
6
+ metadata.gz: befedbce30b57352b1a84c32e67826383f3efa835c92bd07d8c5052a0dbd96dd6cd88f88e9c0d277a34f7052785461419f1bcd1c1a3d9133cf49436077da6bad
7
+ data.tar.gz: 2d42861a395233ac4595d12ea5c02fd8528d01b1b300de844453d8ef434896a4886675d3ca92be54e0b52b01bd19ff7deb4f0fd6cf748a1b2b5195af417e86a3
@@ -0,0 +1,20 @@
1
+ module JenkinsJob
2
+ module Postbuild
3
+ class CucumberJsonPublisher < BasicObject
4
+ attr_reader :test_results_, :ignore_bad_tests_
5
+
6
+ def initialize
7
+ @test_results_ = 'results.json'
8
+ @ignore_bad_tests_ = false
9
+ end
10
+
11
+ def test_results(value)
12
+ @test_results_ = value
13
+ end
14
+
15
+ def ignore_bad_tests(value)
16
+ @ignore_bad_tests_ = value
17
+ end
18
+ end
19
+ end
20
+ end
@@ -14,6 +14,7 @@ require_relative 'postbuild/game_publisher'
14
14
  require_relative 'postbuild/script'
15
15
  require_relative 'postbuild/trigger'
16
16
  require_relative 'postbuild/groovy'
17
+ require_relative 'postbuild/cucumber_json_publisher'
17
18
  require_relative 'buildstep/shell'
18
19
 
19
20
  # dsl methods for job builder
@@ -111,6 +112,12 @@ module JenkinsJob
111
112
  @publishers_['clover-php'] = clover
112
113
  end
113
114
 
115
+ def cucumber_json_publisher(&block)
116
+ cucumber = CucumberJsonPublisher.new
117
+ cucumber.instance_eval(&block) if block
118
+ @publishers_['cucumber'] = cucumber
119
+ end
120
+
114
121
  def publish_javadoc(&block)
115
122
  doc = JavaDocPublisher.new
116
123
  doc.instance_eval(&block) if block
@@ -42,6 +42,7 @@ module JenkinsJob
42
42
  Postbuild::NUnitPublisher => lambda { |generator, model, xml_node| generator.generate_nunit_publisher(model, xml_node) },
43
43
  Postbuild::XUnitPublisher => lambda { |generator, model, xml_node| generator.generate_xunit_publisher(model, xml_node) },
44
44
  Postbuild::HtmlPublisher => lambda { |generator, model, xml_node| generator.generate_html_publisher(model, xml_node) },
45
+ Postbuild::CucumberJsonPublisher => lambda { |generator, model, xml_node| generator.generate_cucumber_publisher(model, xml_node) },
45
46
  Postbuild::LogParser => lambda { |generator, model, xml_node| generator.generate_logparser(model, xml_node) },
46
47
  Postbuild::PostbuildScript => lambda { |generator, model, xml_node| generator.generate_postbuild_script(model, xml_node) },
47
48
  Postbuild::PostbuildGroovy => lambda { |generator, model, xml_node| generator.generate_postbuild_groovy(model, xml_node) },
@@ -680,6 +681,14 @@ module JenkinsJob
680
681
  end
681
682
  end
682
683
 
684
+ def generate_cucumber_publisher(model, publishers)
685
+ publishers.tag!(
686
+ 'org.jenkinsci.plugins.cucumber.jsontestsupport.CucumberTestResultArchiver',
687
+ :plugin => 'cucumber-testresult-plugin@0.8.2') do |cucumber|
688
+ cucumber.testResults(model.test_results_)
689
+ cucumber.ignoreBadSteps(model.ignore_bad_tests_)
690
+ end
691
+ end
683
692
  def generate_logparser(model, publishers)
684
693
  publishers.tag!('hudson.plugins.logparser.LogParserPublisher') do |logparser|
685
694
  logparser.unstableOnWarning(model.unstable_on_warning_)
Binary file
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'rubyjobbuilderdsl'
3
- s.version = '0.0.1'
4
- s.date = '2015-11-15'
3
+ s.version = '0.0.2'
4
+ s.date = '2015-11-25'
5
5
  s.summary = 'Ruby Internal DSL for creating Jenkins jobs'
6
6
  s.description = 'Ruby Internal DSL for creating Jenkins jobs'
7
7
  s.authors = ['Huy Le']
@@ -0,0 +1,71 @@
1
+ require_relative './test_xml_generator'
2
+
3
+ class TestCucumberPublisher < Test::Unit::TestCase
4
+ def test_postbuild_cucumber_json_publisher
5
+ file_location = 'cucumber/results.json'
6
+ ignore_bad_results = 'false'
7
+
8
+ builder = JenkinsJob::Builder.new
9
+
10
+ builder.freestyle 'foo' do
11
+ postbuild do
12
+ cucumber_json_publisher do
13
+ test_results file_location
14
+ ignore_bad_tests ignore_bad_results
15
+ end
16
+ end
17
+ end
18
+
19
+ actual = builder.config_as_xml_node('foo')
20
+
21
+ {
22
+ 'testResults' => file_location,
23
+ 'ignoreBadSteps' => ignore_bad_results,
24
+ }.each do |k, v|
25
+ path = ['./project/publishers/org.jenkinsci.plugins.cucumber.',
26
+ "jsontestsupport.CucumberTestResultArchiver/#{k}"].join('')
27
+ assert_equal v, actual.xpath(path).text
28
+ end
29
+ end
30
+
31
+ def test_selenium_job
32
+
33
+ builder = JenkinsJob::Builder.new
34
+
35
+ builder.freestyle 'foo' do
36
+ node 'master'
37
+
38
+ parameter 'TEST_ENV' do
39
+ description 'The environment that the cucumber tests will be run against'
40
+ default 'PreRelease'
41
+ end
42
+
43
+ git do
44
+ url 'git@github.com:ServiceFrame/webtests.git'
45
+ basedir 'webtests'
46
+ branches 'master'
47
+ end
48
+
49
+ pollscm 'H/30 * * * *'
50
+
51
+ xvfb do
52
+ install_name 'Xvfb'
53
+ end
54
+
55
+ shell 'cd webtests && cucumber'
56
+
57
+ postbuild do
58
+ cucumber_json_publisher do
59
+ test_results 'cucumber/results.json'
60
+ ignore_bad_tests false
61
+ end
62
+ end
63
+
64
+ end
65
+
66
+ actual = builder.config_as_xml_node('foo')
67
+
68
+ puts actual
69
+ end
70
+ end
71
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubyjobbuilderdsl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Huy Le
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-15 00:00:00.000000000 Z
11
+ date: 2015-11-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -91,6 +91,7 @@ files:
91
91
  - lib/rubyjobbuilderdsl/postbuild/chucknorris_publisher.rb
92
92
  - lib/rubyjobbuilderdsl/postbuild/claim_publisher.rb
93
93
  - lib/rubyjobbuilderdsl/postbuild/cloverphp_publisher.rb
94
+ - lib/rubyjobbuilderdsl/postbuild/cucumber_json_publisher.rb
94
95
  - lib/rubyjobbuilderdsl/postbuild/email_publisher.rb
95
96
  - lib/rubyjobbuilderdsl/postbuild/game_publisher.rb
96
97
  - lib/rubyjobbuilderdsl/postbuild/groovy.rb
@@ -106,6 +107,7 @@ files:
106
107
  - lib/rubyjobbuilderdsl/view.rb
107
108
  - lib/rubyjobbuilderdsl/xml_generator.rb
108
109
  - rubyjobbuilderdsl-0.0.0.gem
110
+ - rubyjobbuilderdsl-0.0.1.gem
109
111
  - rubyjobbuilderdsl.gemspec
110
112
  - rubyjobbuilderdsl.sublime-project
111
113
  - run_tests.sh
@@ -120,6 +122,7 @@ files:
120
122
  - test/test_cloverphp.rb
121
123
  - test/test_concurrent.rb
122
124
  - test/test_copyartifact.rb
125
+ - test/test_cucumber_json_publisher.rb
123
126
  - test/test_default_setting.rb
124
127
  - test/test_email_publisher.rb
125
128
  - test/test_flow.rb