rubyjobbuilderdsl 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. checksums.yaml +13 -5
  2. data/Gemfile +6 -6
  3. data/Gemfile.lock +41 -41
  4. data/LICENSE +18 -18
  5. data/Rakefile +12 -12
  6. data/docs/common.md +313 -313
  7. data/docs/flow.md +17 -17
  8. data/docs/freestyle.md +100 -100
  9. data/docs/gerrit.md +70 -70
  10. data/docs/git.md +88 -88
  11. data/docs/multi.md +26 -26
  12. data/docs/overview.md +74 -74
  13. data/docs/postbuild.md +266 -266
  14. data/docs/view.md +13 -13
  15. data/lib/rubyjobbuilderdsl/buildstep/ant.rb +29 -29
  16. data/lib/rubyjobbuilderdsl/buildstep/copyartifact.rb +23 -23
  17. data/lib/rubyjobbuilderdsl/buildstep/inject_env.rb +18 -18
  18. data/lib/rubyjobbuilderdsl/buildstep/phase.rb +19 -19
  19. data/lib/rubyjobbuilderdsl/buildstep/phase_job.rb +26 -26
  20. data/lib/rubyjobbuilderdsl/buildstep/shell.rb +24 -24
  21. data/lib/rubyjobbuilderdsl/buildstep/xvfb.rb +46 -46
  22. data/lib/rubyjobbuilderdsl/common/artifactory.rb +33 -33
  23. data/lib/rubyjobbuilderdsl/common/blocking_job.rb +11 -11
  24. data/lib/rubyjobbuilderdsl/common/build_timeout.rb +23 -23
  25. data/lib/rubyjobbuilderdsl/common/gerrit.rb +53 -53
  26. data/lib/rubyjobbuilderdsl/common/git.rb +76 -76
  27. data/lib/rubyjobbuilderdsl/common/logrotate.rb +24 -24
  28. data/lib/rubyjobbuilderdsl/common/parameter.rb +22 -22
  29. data/lib/rubyjobbuilderdsl/common/password.rb +12 -12
  30. data/lib/rubyjobbuilderdsl/common/pollscm.rb +10 -10
  31. data/lib/rubyjobbuilderdsl/common/scms.rb +18 -18
  32. data/lib/rubyjobbuilderdsl/common/throttle.rb +24 -24
  33. data/lib/rubyjobbuilderdsl/common/timed.rb +10 -10
  34. data/lib/rubyjobbuilderdsl/common/timestamps.rb +6 -6
  35. data/lib/rubyjobbuilderdsl/common.rb +140 -140
  36. data/lib/rubyjobbuilderdsl/deployer.rb +95 -95
  37. data/lib/rubyjobbuilderdsl/flow.rb +14 -14
  38. data/lib/rubyjobbuilderdsl/freestyle.rb +65 -65
  39. data/lib/rubyjobbuilderdsl/jenkins_client.rb +203 -203
  40. data/lib/rubyjobbuilderdsl/multijob.rb +24 -24
  41. data/lib/rubyjobbuilderdsl/postbuild/archive.rb +23 -23
  42. data/lib/rubyjobbuilderdsl/postbuild/chucknorris_publisher.rb +6 -6
  43. data/lib/rubyjobbuilderdsl/postbuild/claim_publisher.rb +6 -6
  44. data/lib/rubyjobbuilderdsl/postbuild/cloverphp_publisher.rb +36 -36
  45. data/lib/rubyjobbuilderdsl/postbuild/cucumber_json_publisher.rb +20 -20
  46. data/lib/rubyjobbuilderdsl/postbuild/email_publisher.rb +23 -23
  47. data/lib/rubyjobbuilderdsl/postbuild/game_publisher.rb +6 -6
  48. data/lib/rubyjobbuilderdsl/postbuild/groovy.rb +10 -10
  49. data/lib/rubyjobbuilderdsl/postbuild/html_publisher.rb +27 -27
  50. data/lib/rubyjobbuilderdsl/postbuild/javadoc_publisher.rb +19 -19
  51. data/lib/rubyjobbuilderdsl/postbuild/logparser.rb +21 -21
  52. data/lib/rubyjobbuilderdsl/postbuild/nunit_publisher.rb +21 -21
  53. data/lib/rubyjobbuilderdsl/postbuild/pmd_publisher.rb +19 -19
  54. data/lib/rubyjobbuilderdsl/postbuild/script.rb +14 -14
  55. data/lib/rubyjobbuilderdsl/postbuild/slack.rb +77 -0
  56. data/lib/rubyjobbuilderdsl/postbuild/tap_publisher.rb +44 -44
  57. data/lib/rubyjobbuilderdsl/postbuild/trigger.rb +38 -38
  58. data/lib/rubyjobbuilderdsl/postbuild/xunit_publisher.rb +35 -35
  59. data/lib/rubyjobbuilderdsl/postbuild.rb +160 -153
  60. data/lib/rubyjobbuilderdsl/view.rb +14 -14
  61. data/lib/rubyjobbuilderdsl/xml_generator.rb +34 -1
  62. data/lib/rubyjobbuilderdsl.rb +2 -2
  63. data/rubyjobbuilderdsl.gemspec +13 -13
  64. data/rubyjobbuilderdsl.sublime-project +14 -14
  65. data/run_tests.sh +7 -7
  66. data/sample/hello_mars.rb +27 -27
  67. data/sample/hello_mars.xml +18 -0
  68. data/sample/hello_world-post.xml +40 -0
  69. data/sample/local.ini +4 -4
  70. data/sample/sample_flow.rb +15 -0
  71. data/sample/sample_slack_postbuild.rb +23 -0
  72. data/sample/test.xml +21 -0
  73. data/test/test_ant.rb +38 -38
  74. data/test/test_archive.rb +24 -24
  75. data/test/test_artifactory.rb +26 -26
  76. data/test/test_blocking_job.rb +18 -18
  77. data/test/test_chucknorris_publisher.rb +17 -17
  78. data/test/test_claim_publisher.rb +17 -17
  79. data/test/test_cloverphp.rb +33 -33
  80. data/test/test_concurrent.rb +44 -44
  81. data/test/test_copyartifact.rb +45 -45
  82. data/test/test_cucumber_json_publisher.rb +30 -30
  83. data/test/test_default_setting.rb +29 -29
  84. data/test/test_email_publisher.rb +44 -44
  85. data/test/test_flow.rb +19 -19
  86. data/test/test_freestyle.rb +52 -52
  87. data/test/test_game_publisher.rb +17 -17
  88. data/test/test_gerrit.rb +117 -117
  89. data/test/test_git.rb +80 -80
  90. data/test/test_html_publisher.rb +57 -57
  91. data/test/test_inject.rb +23 -23
  92. data/test/test_javadoc.rb +22 -22
  93. data/test/test_logparser.rb +24 -24
  94. data/test/test_logrotate.rb +22 -22
  95. data/test/test_multijob.rb +50 -50
  96. data/test/test_nunit_publisher.rb +20 -20
  97. data/test/test_parameter.rb +44 -44
  98. data/test/test_password.rb +17 -17
  99. data/test/test_pmd.rb +22 -22
  100. data/test/test_pollscm.rb +15 -15
  101. data/test/test_postbuild_groovy.rb +21 -21
  102. data/test/test_postbuild_script.rb +24 -24
  103. data/test/test_postbuild_trigger.rb +170 -170
  104. data/test/test_scms.rb +31 -31
  105. data/test/test_tap_publisher.rb +25 -25
  106. data/test/test_timed.rb +15 -15
  107. data/test/test_timeout.rb +20 -20
  108. data/test/test_timestamps.rb +14 -14
  109. data/test/test_xml_generator.rb +28 -28
  110. data/test/test_xunit_publisher.rb +22 -22
  111. data/test/test_xvfb.rb +35 -35
  112. metadata +15 -10
  113. data/sample/Schedule-sample-pipeline.xml +0 -28
data/sample/test.xml ADDED
@@ -0,0 +1,21 @@
1
+ <hudson.model.ListView>
2
+ <name>test</name>
3
+ <filterExecutors>false</filterExecutors>
4
+ <filterQueue>false</filterQueue>
5
+ <properties class="hudson.model.View$PropertyList"/>
6
+ <jobNames>
7
+ <comparator class="hudson.util.CaseInsensitiveComparator"/>
8
+ </jobNames>
9
+ <jobFilters/>
10
+ <columns>
11
+ <hudson.views.StatusColumn/>
12
+ <hudson.views.WeatherColumn/>
13
+ <hudson.views.JobColumn/>
14
+ <hudson.views.LastSuccessColumn/>
15
+ <hudson.views.LastFailureColumn/>
16
+ <hudson.views.LastDurationColumn/>
17
+ <hudson.views.BuildButtonColumn/>
18
+ </columns>
19
+ <includeRegex>test-.*</includeRegex>
20
+ <recurse>false</recurse>
21
+ </hudson.model.ListView>
data/test/test_ant.rb CHANGED
@@ -1,38 +1,38 @@
1
- require_relative './test_xml_generator'
2
-
3
- class TestXmlAnt < Test::Unit::TestCase
4
- def test_ant
5
- builder = JenkinsJob::Builder.new
6
-
7
- builder.freestyle 'foo' do
8
- ant do
9
- target 'clean', 'lint'
10
- buildfile 'foo.xml'
11
- java_opts '-Xmx512m', '-Xms512m'
12
- property 'skipTest' => 'false'
13
- end
14
- end
15
-
16
- actual = builder.config_as_xml_node('foo')
17
- { 'hudson.tasks.Ant/targets' => 'clean lint',
18
- 'hudson.tasks.Ant/buildFile' => 'foo.xml',
19
- 'hudson.tasks.Ant/properties' => '-DskipTest=false',
20
- 'hudson.tasks.Ant/antOpts' => '-Xmx512m -Xms512m',
21
- }.each do |k, v|
22
- assert_equal v, actual.xpath('./project/builders/' \
23
- "#{k}").text, k
24
- end
25
- end
26
-
27
- def test_ant_defalt_target
28
- builder = JenkinsJob::Builder.new
29
-
30
- builder.freestyle 'foo' do
31
- ant do
32
- end
33
- end
34
-
35
- actual = builder.config_as_xml_node('foo')
36
- assert actual.at('./project/builders/hudson.tasks.Ant/targets')
37
- end
38
- end
1
+ require_relative './test_xml_generator'
2
+
3
+ class TestXmlAnt < Test::Unit::TestCase
4
+ def test_ant
5
+ builder = JenkinsJob::Builder.new
6
+
7
+ builder.freestyle 'foo' do
8
+ ant do
9
+ target 'clean', 'lint'
10
+ buildfile 'foo.xml'
11
+ java_opts '-Xmx512m', '-Xms512m'
12
+ property 'skipTest' => 'false'
13
+ end
14
+ end
15
+
16
+ actual = builder.config_as_xml_node('foo')
17
+ { 'hudson.tasks.Ant/targets' => 'clean lint',
18
+ 'hudson.tasks.Ant/buildFile' => 'foo.xml',
19
+ 'hudson.tasks.Ant/properties' => '-DskipTest=false',
20
+ 'hudson.tasks.Ant/antOpts' => '-Xmx512m -Xms512m',
21
+ }.each do |k, v|
22
+ assert_equal v, actual.xpath('./project/builders/' \
23
+ "#{k}").text, k
24
+ end
25
+ end
26
+
27
+ def test_ant_defalt_target
28
+ builder = JenkinsJob::Builder.new
29
+
30
+ builder.freestyle 'foo' do
31
+ ant do
32
+ end
33
+ end
34
+
35
+ actual = builder.config_as_xml_node('foo')
36
+ assert actual.at('./project/builders/hudson.tasks.Ant/targets')
37
+ end
38
+ end
data/test/test_archive.rb CHANGED
@@ -1,24 +1,24 @@
1
- require_relative './test_xml_generator'
2
-
3
- class TestXmlArchive < Test::Unit::TestCase
4
- def test_postbuild_archive
5
- builder = JenkinsJob::Builder.new
6
-
7
- builder.freestyle 'foo' do
8
- postbuild do
9
- archive do
10
- file 'a/**',
11
- 'b/**',
12
- 'c/lib/**'
13
- latest_only true
14
- end
15
- end
16
- end
17
-
18
- actual = builder.config_as_xml_node('foo')
19
- { 'artifacts' => 'a/**,b/**,c/lib/**',
20
- 'latestOnly' => 'true' }.each do |k, v|
21
- assert_equal v, actual.xpath("./project/publishers/hudson.tasks.ArtifactArchiver/#{k}").text, k
22
- end
23
- end
24
- end
1
+ require_relative './test_xml_generator'
2
+
3
+ class TestXmlArchive < Test::Unit::TestCase
4
+ def test_postbuild_archive
5
+ builder = JenkinsJob::Builder.new
6
+
7
+ builder.freestyle 'foo' do
8
+ postbuild do
9
+ archive do
10
+ file 'a/**',
11
+ 'b/**',
12
+ 'c/lib/**'
13
+ latest_only true
14
+ end
15
+ end
16
+ end
17
+
18
+ actual = builder.config_as_xml_node('foo')
19
+ { 'artifacts' => 'a/**,b/**,c/lib/**',
20
+ 'latestOnly' => 'true' }.each do |k, v|
21
+ assert_equal v, actual.xpath("./project/publishers/hudson.tasks.ArtifactArchiver/#{k}").text, k
22
+ end
23
+ end
24
+ end
@@ -1,26 +1,26 @@
1
- require_relative './test_xml_generator'
2
-
3
- class TestXmlArtifactory < Test::Unit::TestCase
4
- def test_artifactory
5
- builder = JenkinsJob::Builder.new
6
-
7
- builder.freestyle 'foo' do
8
- artifactory do
9
- server 'artifactory.mycompany.com'
10
- repository 'bar'
11
- deploy '*.gz'
12
- end
13
- end
14
-
15
- actual = builder.config_as_xml_node('foo')
16
- { 'details/artifactoryName' => 'artifactory.mycompany.com',
17
- 'details/repositoryKey' => 'bar',
18
- 'details/snapshotsRepositoryKey' => 'bar',
19
- 'deployPattern' => '*.gz',
20
- 'deployBuildInfo' => 'false',
21
- 'includeEnvVars' => 'false',
22
- }.each do |k, v|
23
- assert_equal v, actual.xpath("./project/buildWrappers/org.jfrog.hudson.generic.ArtifactoryGenericConfigurator/#{k}").text, k
24
- end
25
- end
26
- end
1
+ require_relative './test_xml_generator'
2
+
3
+ class TestXmlArtifactory < Test::Unit::TestCase
4
+ def test_artifactory
5
+ builder = JenkinsJob::Builder.new
6
+
7
+ builder.freestyle 'foo' do
8
+ artifactory do
9
+ server 'artifactory.mycompany.com'
10
+ repository 'bar'
11
+ deploy '*.gz'
12
+ end
13
+ end
14
+
15
+ actual = builder.config_as_xml_node('foo')
16
+ { 'details/artifactoryName' => 'artifactory.mycompany.com',
17
+ 'details/repositoryKey' => 'bar',
18
+ 'details/snapshotsRepositoryKey' => 'bar',
19
+ 'deployPattern' => '*.gz',
20
+ 'deployBuildInfo' => 'false',
21
+ 'includeEnvVars' => 'false',
22
+ }.each do |k, v|
23
+ assert_equal v, actual.xpath("./project/buildWrappers/org.jfrog.hudson.generic.ArtifactoryGenericConfigurator/#{k}").text, k
24
+ end
25
+ end
26
+ end
@@ -1,18 +1,18 @@
1
- require_relative './test_xml_generator'
2
-
3
- class TestXmlBlockingJob < Test::Unit::TestCase
4
- def test_blocking_job
5
- builder = JenkinsJob::Builder.new
6
-
7
- builder.freestyle 'pre-deploy' do
8
- blocked_by 'deploy', 'post-deploy'
9
- end
10
-
11
- actual = builder.config_as_xml_node('pre-deploy')
12
-
13
- { 'useBuildBlocker' => 'true',
14
- 'blockingJobs' => "deploy\npost-deploy" }.each do |k, v|
15
- assert v, actual.xpath("./project/properties/hudson.plugins.buildblocker.BuildBlockerProperty/#{k}").text
16
- end
17
- end
18
- end
1
+ require_relative './test_xml_generator'
2
+
3
+ class TestXmlBlockingJob < Test::Unit::TestCase
4
+ def test_blocking_job
5
+ builder = JenkinsJob::Builder.new
6
+
7
+ builder.freestyle 'pre-deploy' do
8
+ blocked_by 'deploy', 'post-deploy'
9
+ end
10
+
11
+ actual = builder.config_as_xml_node('pre-deploy')
12
+
13
+ { 'useBuildBlocker' => 'true',
14
+ 'blockingJobs' => "deploy\npost-deploy" }.each do |k, v|
15
+ assert v, actual.xpath("./project/properties/hudson.plugins.buildblocker.BuildBlockerProperty/#{k}").text
16
+ end
17
+ end
18
+ end
@@ -1,17 +1,17 @@
1
- require_relative './test_xml_generator'
2
-
3
- class TestChuckNorrisPublisher < Test::Unit::TestCase
4
- def test_postbuild_chucknorris_publisher
5
- builder = JenkinsJob::Builder.new
6
-
7
- builder.freestyle 'foo' do
8
- postbuild do
9
- chucknorris
10
- end
11
- end
12
-
13
- actual = builder.config_as_xml_node('foo')
14
-
15
- assert actual.at('./project/publishers/hudson.plugins.chucknorris.CordellWalkerRecorder/factGenerator')
16
- end
17
- end
1
+ require_relative './test_xml_generator'
2
+
3
+ class TestChuckNorrisPublisher < Test::Unit::TestCase
4
+ def test_postbuild_chucknorris_publisher
5
+ builder = JenkinsJob::Builder.new
6
+
7
+ builder.freestyle 'foo' do
8
+ postbuild do
9
+ chucknorris
10
+ end
11
+ end
12
+
13
+ actual = builder.config_as_xml_node('foo')
14
+
15
+ assert actual.at('./project/publishers/hudson.plugins.chucknorris.CordellWalkerRecorder/factGenerator')
16
+ end
17
+ end
@@ -1,17 +1,17 @@
1
- require_relative './test_xml_generator'
2
-
3
- class TestXmlClaimPublisher < Test::Unit::TestCase
4
- def test_postbuild_nunit_publisher
5
- builder = JenkinsJob::Builder.new
6
-
7
- builder.freestyle 'foo' do
8
- postbuild do
9
- allow_broken_build_claiming
10
- end
11
- end
12
-
13
- actual = builder.config_as_xml_node('foo')
14
-
15
- assert actual.at('./project/publishers/hudson.plugins.claim.ClaimPublisher')
16
- end
17
- end
1
+ require_relative './test_xml_generator'
2
+
3
+ class TestXmlClaimPublisher < Test::Unit::TestCase
4
+ def test_postbuild_nunit_publisher
5
+ builder = JenkinsJob::Builder.new
6
+
7
+ builder.freestyle 'foo' do
8
+ postbuild do
9
+ allow_broken_build_claiming
10
+ end
11
+ end
12
+
13
+ actual = builder.config_as_xml_node('foo')
14
+
15
+ assert actual.at('./project/publishers/hudson.plugins.claim.ClaimPublisher')
16
+ end
17
+ end
@@ -1,33 +1,33 @@
1
- require_relative './test_xml_generator'
2
-
3
- class TestXmlCloverPhp < Test::Unit::TestCase
4
- def test_clover_php
5
- builder = JenkinsJob::Builder.new
6
-
7
- builder.freestyle 'foo' do
8
- postbuild do
9
- publish_cloverphp do
10
- xml_location 'build/coverage_clover.xml'
11
- html_report_dir 'build/coverage'
12
- healthy_target :method => 70, :statement => 80
13
- end
14
- end
15
- end
16
-
17
- actual = builder.config_as_xml_node('foo')
18
- { 'publishHtmlReport' => 'true',
19
- 'reportDir' => 'build/coverage',
20
- 'xmlLocation' => 'build/coverage_clover.xml',
21
- 'disableArchiving' => 'false' }.each do |k, v|
22
- assert_equal v, actual.xpath("./project/publishers/org.jenkinsci.plugins.cloverphp.CloverPHPPublisher/#{k}").text, k
23
- end
24
-
25
- { 'methodCoverage' => '70',
26
- 'statementCoverage' => '80' }.each do |k, v|
27
- assert_equal v, actual.xpath("./project/publishers/org.jenkinsci.plugins.cloverphp.CloverPHPPublisher/healthyTarget/#{k}").text, k
28
- end
29
- %w(unhealthyTarget failingTarget).each do |target|
30
- assert actual.at("./project/publishers/org.jenkinsci.plugins.cloverphp.CloverPHPPublisher/#{target}")
31
- end
32
- end
33
- end
1
+ require_relative './test_xml_generator'
2
+
3
+ class TestXmlCloverPhp < Test::Unit::TestCase
4
+ def test_clover_php
5
+ builder = JenkinsJob::Builder.new
6
+
7
+ builder.freestyle 'foo' do
8
+ postbuild do
9
+ publish_cloverphp do
10
+ xml_location 'build/coverage_clover.xml'
11
+ html_report_dir 'build/coverage'
12
+ healthy_target :method => 70, :statement => 80
13
+ end
14
+ end
15
+ end
16
+
17
+ actual = builder.config_as_xml_node('foo')
18
+ { 'publishHtmlReport' => 'true',
19
+ 'reportDir' => 'build/coverage',
20
+ 'xmlLocation' => 'build/coverage_clover.xml',
21
+ 'disableArchiving' => 'false' }.each do |k, v|
22
+ assert_equal v, actual.xpath("./project/publishers/org.jenkinsci.plugins.cloverphp.CloverPHPPublisher/#{k}").text, k
23
+ end
24
+
25
+ { 'methodCoverage' => '70',
26
+ 'statementCoverage' => '80' }.each do |k, v|
27
+ assert_equal v, actual.xpath("./project/publishers/org.jenkinsci.plugins.cloverphp.CloverPHPPublisher/healthyTarget/#{k}").text, k
28
+ end
29
+ %w(unhealthyTarget failingTarget).each do |target|
30
+ assert actual.at("./project/publishers/org.jenkinsci.plugins.cloverphp.CloverPHPPublisher/#{target}")
31
+ end
32
+ end
33
+ end
@@ -1,44 +1,44 @@
1
- require_relative './test_xml_generator'
2
-
3
- class TestXmlConcurrent < Test::Unit::TestCase
4
- def test_concurrent_per_project
5
- builder = JenkinsJob::Builder.new
6
-
7
- builder.freestyle 'foo' do
8
- concurrent do
9
- max_per_node 2
10
- max_total 0
11
- end
12
- end
13
-
14
- actual = builder.config_as_xml_node('foo')
15
-
16
- assert_equal 'true', actual.xpath('./project/concurrentBuild').text
17
-
18
- { 'maxConcurrentPerNode' => '2', 'maxConcurrentTotal' => '0', 'throttleEnabled' => 'true',
19
- 'throttleOption' => 'project', 'configVersion' => '1' }.each do |k, v|
20
- assert_equal v, actual.xpath("./project/properties/hudson.plugins.throttleconcurrents.ThrottleJobProperty/#{k}").text, k
21
- end
22
- end
23
-
24
- def test_concurrent_per_category
25
- builder = JenkinsJob::Builder.new
26
-
27
- builder.freestyle 'foo' do
28
- concurrent do
29
- max_per_node 2
30
- max_total 0
31
- category 'servicetest'
32
- end
33
- end
34
-
35
- actual = builder.config_as_xml_node('foo')
36
-
37
- assert_equal 'true', actual.xpath('./project/concurrentBuild').text
38
-
39
- { 'maxConcurrentPerNode' => '2', 'maxConcurrentTotal' => '0', 'throttleEnabled' => 'true',
40
- 'throttleOption' => 'category', 'configVersion' => '1', 'categories/string' => 'servicetest' }.each do |k, v|
41
- assert_equal v, actual.xpath("./project/properties/hudson.plugins.throttleconcurrents.ThrottleJobProperty/#{k}").text, k
42
- end
43
- end
44
- end
1
+ require_relative './test_xml_generator'
2
+
3
+ class TestXmlConcurrent < Test::Unit::TestCase
4
+ def test_concurrent_per_project
5
+ builder = JenkinsJob::Builder.new
6
+
7
+ builder.freestyle 'foo' do
8
+ concurrent do
9
+ max_per_node 2
10
+ max_total 0
11
+ end
12
+ end
13
+
14
+ actual = builder.config_as_xml_node('foo')
15
+
16
+ assert_equal 'true', actual.xpath('./project/concurrentBuild').text
17
+
18
+ { 'maxConcurrentPerNode' => '2', 'maxConcurrentTotal' => '0', 'throttleEnabled' => 'true',
19
+ 'throttleOption' => 'project', 'configVersion' => '1' }.each do |k, v|
20
+ assert_equal v, actual.xpath("./project/properties/hudson.plugins.throttleconcurrents.ThrottleJobProperty/#{k}").text, k
21
+ end
22
+ end
23
+
24
+ def test_concurrent_per_category
25
+ builder = JenkinsJob::Builder.new
26
+
27
+ builder.freestyle 'foo' do
28
+ concurrent do
29
+ max_per_node 2
30
+ max_total 0
31
+ category 'servicetest'
32
+ end
33
+ end
34
+
35
+ actual = builder.config_as_xml_node('foo')
36
+
37
+ assert_equal 'true', actual.xpath('./project/concurrentBuild').text
38
+
39
+ { 'maxConcurrentPerNode' => '2', 'maxConcurrentTotal' => '0', 'throttleEnabled' => 'true',
40
+ 'throttleOption' => 'category', 'configVersion' => '1', 'categories/string' => 'servicetest' }.each do |k, v|
41
+ assert_equal v, actual.xpath("./project/properties/hudson.plugins.throttleconcurrents.ThrottleJobProperty/#{k}").text, k
42
+ end
43
+ end
44
+ end
@@ -1,45 +1,45 @@
1
- require_relative './test_xml_generator'
2
-
3
- class TestXmlCopyArtifact < Test::Unit::TestCase
4
- def test_copy_lastest
5
- builder = JenkinsJob::Builder.new
6
-
7
- builder.freestyle 'foo' do
8
- copyartifact 'bar' do
9
- file 'a/**',
10
- 'b/**'
11
- end
12
- end
13
-
14
- actual = builder.config_as_xml_node('foo')
15
-
16
- assert_equal 'bar', actual.xpath('./project/builders/hudson.plugins.copyartifact.CopyArtifact/project').text
17
- assert_equal 'a/**,b/**', actual.xpath('./project/builders/hudson.plugins.copyartifact.CopyArtifact/filter').text
18
- assert actual.at('./project/builders/hudson.plugins.copyartifact.CopyArtifact/target')
19
-
20
- assert_equal 'false', actual.xpath('./project/builders/hudson.plugins.copyartifact.CopyArtifact/flatten').text
21
- assert_equal 'false', actual.xpath('./project/builders/hudson.plugins.copyartifact.CopyArtifact/optional').text
22
- assert actual.at('./project/builders/hudson.plugins.copyartifact.CopyArtifact/parameters')
23
-
24
- assert_equal 'false', actual.xpath('./project/builders/hudson.plugins.copyartifact.CopyArtifact/' \
25
- "selector[contains(@class,'hudson.plugins.copyartifact.StatusBuildSelector')]/stable").text
26
- end
27
-
28
- def test_copy_specific_build
29
- builder = JenkinsJob::Builder.new
30
-
31
- builder.freestyle 'foo' do
32
- copyartifact 'bar' do
33
- build_number '$ARTIFACT_BUILD_NUMBER'
34
- file 'a/**',
35
- 'b/**'
36
- to '$BUILD_NUMBER'
37
- end
38
- end
39
-
40
- actual = builder.config_as_xml_node('foo')
41
-
42
- assert_equal '$ARTIFACT_BUILD_NUMBER', actual.xpath('./project/builders/hudson.plugins.copyartifact.CopyArtifact/' \
43
- "selector[contains(@class,'hudson.plugins.copyartifact.SpecificBuildSelector')]/buildNumber").text
44
- end
45
- end
1
+ require_relative './test_xml_generator'
2
+
3
+ class TestXmlCopyArtifact < Test::Unit::TestCase
4
+ def test_copy_lastest
5
+ builder = JenkinsJob::Builder.new
6
+
7
+ builder.freestyle 'foo' do
8
+ copyartifact 'bar' do
9
+ file 'a/**',
10
+ 'b/**'
11
+ end
12
+ end
13
+
14
+ actual = builder.config_as_xml_node('foo')
15
+
16
+ assert_equal 'bar', actual.xpath('./project/builders/hudson.plugins.copyartifact.CopyArtifact/project').text
17
+ assert_equal 'a/**,b/**', actual.xpath('./project/builders/hudson.plugins.copyartifact.CopyArtifact/filter').text
18
+ assert actual.at('./project/builders/hudson.plugins.copyartifact.CopyArtifact/target')
19
+
20
+ assert_equal 'false', actual.xpath('./project/builders/hudson.plugins.copyartifact.CopyArtifact/flatten').text
21
+ assert_equal 'false', actual.xpath('./project/builders/hudson.plugins.copyartifact.CopyArtifact/optional').text
22
+ assert actual.at('./project/builders/hudson.plugins.copyartifact.CopyArtifact/parameters')
23
+
24
+ assert_equal 'false', actual.xpath('./project/builders/hudson.plugins.copyartifact.CopyArtifact/' \
25
+ "selector[contains(@class,'hudson.plugins.copyartifact.StatusBuildSelector')]/stable").text
26
+ end
27
+
28
+ def test_copy_specific_build
29
+ builder = JenkinsJob::Builder.new
30
+
31
+ builder.freestyle 'foo' do
32
+ copyartifact 'bar' do
33
+ build_number '$ARTIFACT_BUILD_NUMBER'
34
+ file 'a/**',
35
+ 'b/**'
36
+ to '$BUILD_NUMBER'
37
+ end
38
+ end
39
+
40
+ actual = builder.config_as_xml_node('foo')
41
+
42
+ assert_equal '$ARTIFACT_BUILD_NUMBER', actual.xpath('./project/builders/hudson.plugins.copyartifact.CopyArtifact/' \
43
+ "selector[contains(@class,'hudson.plugins.copyartifact.SpecificBuildSelector')]/buildNumber").text
44
+ end
45
+ end
@@ -1,30 +1,30 @@
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
- end
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
+ end