rubyjobbuilderdsl 0.0.4 → 0.0.5

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 (112) hide show
  1. checksums.yaml +5 -13
  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/tap_publisher.rb +44 -44
  56. data/lib/rubyjobbuilderdsl/postbuild/trigger.rb +38 -38
  57. data/lib/rubyjobbuilderdsl/postbuild/xunit_publisher.rb +35 -35
  58. data/lib/rubyjobbuilderdsl/postbuild.rb +160 -160
  59. data/lib/rubyjobbuilderdsl/view.rb +14 -14
  60. data/lib/rubyjobbuilderdsl/xml_generator.rb +1 -1
  61. data/lib/rubyjobbuilderdsl.rb +2 -2
  62. data/rubyjobbuilderdsl-0.0.3.gem +0 -0
  63. data/rubyjobbuilderdsl.gemspec +13 -13
  64. data/rubyjobbuilderdsl.sublime-project +14 -14
  65. data/run_tests.sh +7 -7
  66. data/sample/Schedule-sample-pipeline.xml +32 -0
  67. data/sample/hello_mars.rb +27 -27
  68. data/sample/local.ini +4 -4
  69. data/test/test_ant.rb +38 -38
  70. data/test/test_archive.rb +24 -24
  71. data/test/test_artifactory.rb +26 -26
  72. data/test/test_blocking_job.rb +18 -18
  73. data/test/test_chucknorris_publisher.rb +17 -17
  74. data/test/test_claim_publisher.rb +17 -17
  75. data/test/test_cloverphp.rb +33 -33
  76. data/test/test_concurrent.rb +44 -44
  77. data/test/test_copyartifact.rb +45 -45
  78. data/test/test_cucumber_json_publisher.rb +30 -30
  79. data/test/test_default_setting.rb +29 -29
  80. data/test/test_email_publisher.rb +44 -44
  81. data/test/test_flow.rb +19 -19
  82. data/test/test_freestyle.rb +52 -52
  83. data/test/test_game_publisher.rb +17 -17
  84. data/test/test_gerrit.rb +117 -117
  85. data/test/test_git.rb +80 -80
  86. data/test/test_html_publisher.rb +57 -57
  87. data/test/test_inject.rb +23 -23
  88. data/test/test_javadoc.rb +22 -22
  89. data/test/test_logparser.rb +24 -24
  90. data/test/test_logrotate.rb +22 -22
  91. data/test/test_multijob.rb +50 -50
  92. data/test/test_nunit_publisher.rb +20 -20
  93. data/test/test_parameter.rb +44 -44
  94. data/test/test_password.rb +17 -17
  95. data/test/test_pmd.rb +22 -22
  96. data/test/test_pollscm.rb +15 -15
  97. data/test/test_postbuild_groovy.rb +21 -21
  98. data/test/test_postbuild_script.rb +24 -24
  99. data/test/test_postbuild_trigger.rb +170 -170
  100. data/test/test_scms.rb +31 -31
  101. data/test/test_tap_publisher.rb +25 -25
  102. data/test/test_timed.rb +15 -15
  103. data/test/test_timeout.rb +20 -20
  104. data/test/test_timestamps.rb +14 -14
  105. data/test/test_xml_generator.rb +28 -28
  106. data/test/test_xunit_publisher.rb +22 -22
  107. data/test/test_xvfb.rb +35 -35
  108. metadata +9 -11
  109. data/sample/hello_mars.xml +0 -18
  110. data/sample/hello_world-post.xml +0 -40
  111. data/sample/sample_flow.rb +0 -15
  112. data/sample/test.xml +0 -21
data/test/test_flow.rb CHANGED
@@ -1,19 +1,19 @@
1
- require_relative './test_xml_generator'
2
-
3
- class TestXmlFlow < Test::Unit::TestCase
4
- def test_flow
5
- groovy_code = <<EOS
6
- build("ops-" + params["GERRIT_BRANCH"], GERRIT_REFSPEC: "refs/heads/${params["GERRIT_BRANCH"]}",
7
- GERRIT_BRANCH: params["GERRIT_BRANCH"])
8
- EOS
9
- builder = JenkinsJob::Builder.new
10
- builder.flow 'foo' do
11
- dsl groovy_code
12
- end
13
-
14
- actual = builder.config_as_xml_node('foo')
15
- { 'buildNeedsWorkspace' => 'true', 'dsl' => groovy_code }.each do |k, v|
16
- assert_equal v, actual.xpath("./com.cloudbees.plugins.flow.BuildFlow/#{k}").text, k
17
- end
18
- end
19
- end
1
+ require_relative './test_xml_generator'
2
+
3
+ class TestXmlFlow < Test::Unit::TestCase
4
+ def test_flow
5
+ groovy_code = <<EOS
6
+ build("ops-" + params["GERRIT_BRANCH"], GERRIT_REFSPEC: "refs/heads/${params["GERRIT_BRANCH"]}",
7
+ GERRIT_BRANCH: params["GERRIT_BRANCH"])
8
+ EOS
9
+ builder = JenkinsJob::Builder.new
10
+ builder.flow 'foo' do
11
+ dsl groovy_code
12
+ end
13
+
14
+ actual = builder.config_as_xml_node('foo')
15
+ { 'buildNeedsWorkspace' => 'true', 'dsl' => groovy_code }.each do |k, v|
16
+ assert_equal v, actual.xpath("./com.cloudbees.plugins.flow.BuildFlow/#{k}").text, k
17
+ end
18
+ end
19
+ end
@@ -1,52 +1,52 @@
1
- require_relative './test_xml_generator'
2
-
3
- class TestXmlFreestyle < Test::Unit::TestCase
4
- def test_freestyle
5
- builder = JenkinsJob::Builder.new
6
-
7
- builder.freestyle 'foo' do
8
- desc 'this is a foo'
9
- workspace 'foo-$BUILD_NUMBER'
10
- node 'windows'
11
- quiet_period 5
12
- end
13
-
14
- actual = builder.config_as_xml_node('foo')
15
-
16
- assert_equal '', actual.xpath('./project/actions').text
17
- assert_equal 'this is a foo', actual.xpath('./project/description').text
18
- assert_equal 'false', actual.xpath('./project/keepDependencies').text
19
- assert_equal 'false', actual.xpath('./project/blockBuildWhenDownstreamBuilding').text
20
- assert_equal 'false', actual.xpath('./project/concurrentBuild').text
21
- assert_equal 'foo-$BUILD_NUMBER', actual.xpath('./project/customWorkspace').text
22
- assert_equal '5', actual.xpath('./project/quietPeriod').text
23
- assert_equal 'windows', actual.xpath('./project/assignedNode').text
24
- assert_equal 'false', actual.xpath('./project/canRoam').text
25
- assert_equal '', actual.xpath('./project/properties').text
26
- assert_equal 'hudson.scm.NullSCM', actual.xpath('./project/scm').attr('class').text
27
- assert_equal '', actual.xpath('./project/builders').text
28
- assert_equal '', actual.xpath('./project/publishers').text
29
- assert_equal '', actual.xpath('./project/buildWrappers').text
30
- end
31
-
32
- def test_builders
33
- builder = JenkinsJob::Builder.new
34
-
35
- builder.freestyle 'foo' do
36
- powershell 'Get-Service bar.* | foreach { sc.exe stop $_.Name }'
37
- shell 'rm -rf * || true'
38
- batch 'c:\Nuget\NuGet.exe Install ServiceTestRunner -source ArtifactoryBuildScripts -config c:\Nuget\NuGet.Config'
39
- end
40
-
41
- actual = builder.config_as_xml_node('foo')
42
-
43
- assert_equal 'Get-Service bar.* | foreach { sc.exe stop $_.Name }',
44
- actual.xpath('./project/builders/hudson.plugins.powershell.PowerShell/command').text
45
-
46
- assert_equal 'rm -rf * || true',
47
- actual.xpath('./project/builders/hudson.tasks.Shell/command').text
48
-
49
- assert_equal 'c:\Nuget\NuGet.exe Install ServiceTestRunner -source ArtifactoryBuildScripts -config c:\Nuget\NuGet.Config',
50
- actual.xpath('./project/builders/hudson.tasks.BatchFile/command').text
51
- end
52
- end
1
+ require_relative './test_xml_generator'
2
+
3
+ class TestXmlFreestyle < Test::Unit::TestCase
4
+ def test_freestyle
5
+ builder = JenkinsJob::Builder.new
6
+
7
+ builder.freestyle 'foo' do
8
+ desc 'this is a foo'
9
+ workspace 'foo-$BUILD_NUMBER'
10
+ node 'windows'
11
+ quiet_period 5
12
+ end
13
+
14
+ actual = builder.config_as_xml_node('foo')
15
+
16
+ assert_equal '', actual.xpath('./project/actions').text
17
+ assert_equal 'this is a foo', actual.xpath('./project/description').text
18
+ assert_equal 'false', actual.xpath('./project/keepDependencies').text
19
+ assert_equal 'false', actual.xpath('./project/blockBuildWhenDownstreamBuilding').text
20
+ assert_equal 'false', actual.xpath('./project/concurrentBuild').text
21
+ assert_equal 'foo-$BUILD_NUMBER', actual.xpath('./project/customWorkspace').text
22
+ assert_equal '5', actual.xpath('./project/quietPeriod').text
23
+ assert_equal 'windows', actual.xpath('./project/assignedNode').text
24
+ assert_equal 'false', actual.xpath('./project/canRoam').text
25
+ assert_equal '', actual.xpath('./project/properties').text
26
+ assert_equal 'hudson.scm.NullSCM', actual.xpath('./project/scm').attr('class').text
27
+ assert_equal '', actual.xpath('./project/builders').text
28
+ assert_equal '', actual.xpath('./project/publishers').text
29
+ assert_equal '', actual.xpath('./project/buildWrappers').text
30
+ end
31
+
32
+ def test_builders
33
+ builder = JenkinsJob::Builder.new
34
+
35
+ builder.freestyle 'foo' do
36
+ powershell 'Get-Service bar.* | foreach { sc.exe stop $_.Name }'
37
+ shell 'rm -rf * || true'
38
+ batch 'c:\Nuget\NuGet.exe Install ServiceTestRunner -source ArtifactoryBuildScripts -config c:\Nuget\NuGet.Config'
39
+ end
40
+
41
+ actual = builder.config_as_xml_node('foo')
42
+
43
+ assert_equal 'Get-Service bar.* | foreach { sc.exe stop $_.Name }',
44
+ actual.xpath('./project/builders/hudson.plugins.powershell.PowerShell/command').text
45
+
46
+ assert_equal 'rm -rf * || true',
47
+ actual.xpath('./project/builders/hudson.tasks.Shell/command').text
48
+
49
+ assert_equal 'c:\Nuget\NuGet.exe Install ServiceTestRunner -source ArtifactoryBuildScripts -config c:\Nuget\NuGet.Config',
50
+ actual.xpath('./project/builders/hudson.tasks.BatchFile/command').text
51
+ end
52
+ end
@@ -1,17 +1,17 @@
1
- require_relative './test_xml_generator'
2
-
3
- class TestGamePublisher < Test::Unit::TestCase
4
- def test_postbuild_game_publisher
5
- builder = JenkinsJob::Builder.new
6
-
7
- builder.freestyle 'foo' do
8
- postbuild do
9
- game
10
- end
11
- end
12
-
13
- actual = builder.config_as_xml_node('foo')
14
-
15
- assert actual.at('./project/publishers/hudson.plugins.cigame.GamePublisher')
16
- end
17
- end
1
+ require_relative './test_xml_generator'
2
+
3
+ class TestGamePublisher < Test::Unit::TestCase
4
+ def test_postbuild_game_publisher
5
+ builder = JenkinsJob::Builder.new
6
+
7
+ builder.freestyle 'foo' do
8
+ postbuild do
9
+ game
10
+ end
11
+ end
12
+
13
+ actual = builder.config_as_xml_node('foo')
14
+
15
+ assert actual.at('./project/publishers/hudson.plugins.cigame.GamePublisher')
16
+ end
17
+ end
data/test/test_gerrit.rb CHANGED
@@ -1,117 +1,117 @@
1
- require_relative './test_xml_generator'
2
-
3
- class TestXmlGerrit < Test::Unit::TestCase
4
- def test_gerrit_project
5
- builder = JenkinsJob::Builder.new
6
-
7
- builder.flow 'foo' do
8
- gerrit do
9
- patchset_uploaded
10
-
11
- project 'foo/bar' do
12
- branch 'master', 'release'
13
- file 'a/**',
14
- 'b/**'
15
- end
16
- end
17
- end
18
-
19
- actual = builder.config_as_xml_node('foo')
20
-
21
- { 'compareType' => 'PLAIN', 'pattern' => 'foo/bar' }.each do |k, v|
22
- assert_equal v, actual.xpath('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
23
- 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/gerritProjects/' \
24
- "com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.GerritProject/#{k}").text, k
25
- end
26
-
27
- { 1 => { 'compareType' => 'ANT', 'pattern' => 'master' },
28
- 2 => { 'compareType' => 'ANT', 'pattern' => 'release' } }.each do |item, data|
29
- data.each do |k, v|
30
- assert_equal v, actual.xpath('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
31
- 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/gerritProjects/' \
32
- 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.GerritProject/branches/' \
33
- "com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.Branch[#{item}]/#{k}").text, "item #{item}, #{k}"
34
- end
35
- end
36
-
37
- { 1 => { 'compareType' => 'ANT', 'pattern' => 'a/**' },
38
- 2 => { 'compareType' => 'ANT', 'pattern' => 'b/**' } }.each do |item, data|
39
- data.each do |k, v|
40
- assert_equal v, actual.xpath('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
41
- 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/gerritProjects/' \
42
- 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.GerritProject/filePaths/' \
43
- "com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.FilePath[#{item}]/#{k}").text, "item #{item}, #{k}"
44
- end
45
- end
46
- end
47
-
48
- def test_patchset_uploaded
49
- builder = JenkinsJob::Builder.new
50
-
51
- builder.flow 'foo' do
52
- gerrit do
53
- patchset_uploaded
54
- end
55
- end
56
-
57
- actual = builder.config_as_xml_node('foo')
58
-
59
- assert actual.at('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
60
- 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/triggerOnEvents/' \
61
- 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginPatchsetCreatedEvent')
62
- end
63
-
64
- def test_gerrit_change_merged
65
- builder = JenkinsJob::Builder.new
66
-
67
- builder.flow 'foo' do
68
- gerrit do
69
- change_merged
70
- end
71
- end
72
-
73
- actual = builder.config_as_xml_node('foo')
74
- assert actual.at('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
75
- 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/triggerOnEvents/' \
76
- 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginChangeMergedEvent')
77
- end
78
-
79
- def test_gerrit_one_comment_added
80
- builder = JenkinsJob::Builder.new
81
-
82
- builder.flow 'foo' do
83
- gerrit do
84
- comment_added 'Code-Review' => '2'
85
- end
86
- end
87
-
88
- actual = builder.config_as_xml_node('foo')
89
- { 'verdictCategory' => 'Code-Review', 'commentAddedTriggerApprovalValue' => '2' }.each do |k, v|
90
- assert_equal v, actual.xpath('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
91
- 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/triggerOnEvents/' \
92
- "com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginCommentAddedEvent/#{k}").text, k
93
- end
94
- end
95
-
96
- def test_gerrit_more_comment_added
97
- builder = JenkinsJob::Builder.new
98
-
99
- builder.flow 'foo' do
100
- gerrit do
101
- comment_added 'Code-Review' => '2', 'Verified' => '1'
102
- end
103
- end
104
-
105
- actual = builder.config_as_xml_node('foo')
106
-
107
- { 1 => { 'verdictCategory' => 'Code-Review', 'commentAddedTriggerApprovalValue' => '2' },
108
- 2 => { 'verdictCategory' => 'Verified', 'commentAddedTriggerApprovalValue' => '1' } }.each do |item, data|
109
- data.each do |k, v|
110
- assert_equal v, actual.xpath('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
111
- 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/triggerOnEvents/' \
112
- "com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginCommentAddedEvent[#{item}]/#{k}").text,
113
- "item #{item}, #{k}"
114
- end
115
- end
116
- end
117
- end
1
+ require_relative './test_xml_generator'
2
+
3
+ class TestXmlGerrit < Test::Unit::TestCase
4
+ def test_gerrit_project
5
+ builder = JenkinsJob::Builder.new
6
+
7
+ builder.flow 'foo' do
8
+ gerrit do
9
+ patchset_uploaded
10
+
11
+ project 'foo/bar' do
12
+ branch 'master', 'release'
13
+ file 'a/**',
14
+ 'b/**'
15
+ end
16
+ end
17
+ end
18
+
19
+ actual = builder.config_as_xml_node('foo')
20
+
21
+ { 'compareType' => 'PLAIN', 'pattern' => 'foo/bar' }.each do |k, v|
22
+ assert_equal v, actual.xpath('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
23
+ 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/gerritProjects/' \
24
+ "com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.GerritProject/#{k}").text, k
25
+ end
26
+
27
+ { 1 => { 'compareType' => 'ANT', 'pattern' => 'master' },
28
+ 2 => { 'compareType' => 'ANT', 'pattern' => 'release' } }.each do |item, data|
29
+ data.each do |k, v|
30
+ assert_equal v, actual.xpath('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
31
+ 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/gerritProjects/' \
32
+ 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.GerritProject/branches/' \
33
+ "com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.Branch[#{item}]/#{k}").text, "item #{item}, #{k}"
34
+ end
35
+ end
36
+
37
+ { 1 => { 'compareType' => 'ANT', 'pattern' => 'a/**' },
38
+ 2 => { 'compareType' => 'ANT', 'pattern' => 'b/**' } }.each do |item, data|
39
+ data.each do |k, v|
40
+ assert_equal v, actual.xpath('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
41
+ 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/gerritProjects/' \
42
+ 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.GerritProject/filePaths/' \
43
+ "com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.FilePath[#{item}]/#{k}").text, "item #{item}, #{k}"
44
+ end
45
+ end
46
+ end
47
+
48
+ def test_patchset_uploaded
49
+ builder = JenkinsJob::Builder.new
50
+
51
+ builder.flow 'foo' do
52
+ gerrit do
53
+ patchset_uploaded
54
+ end
55
+ end
56
+
57
+ actual = builder.config_as_xml_node('foo')
58
+
59
+ assert actual.at('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
60
+ 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/triggerOnEvents/' \
61
+ 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginPatchsetCreatedEvent')
62
+ end
63
+
64
+ def test_gerrit_change_merged
65
+ builder = JenkinsJob::Builder.new
66
+
67
+ builder.flow 'foo' do
68
+ gerrit do
69
+ change_merged
70
+ end
71
+ end
72
+
73
+ actual = builder.config_as_xml_node('foo')
74
+ assert actual.at('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
75
+ 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/triggerOnEvents/' \
76
+ 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginChangeMergedEvent')
77
+ end
78
+
79
+ def test_gerrit_one_comment_added
80
+ builder = JenkinsJob::Builder.new
81
+
82
+ builder.flow 'foo' do
83
+ gerrit do
84
+ comment_added 'Code-Review' => '2'
85
+ end
86
+ end
87
+
88
+ actual = builder.config_as_xml_node('foo')
89
+ { 'verdictCategory' => 'Code-Review', 'commentAddedTriggerApprovalValue' => '2' }.each do |k, v|
90
+ assert_equal v, actual.xpath('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
91
+ 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/triggerOnEvents/' \
92
+ "com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginCommentAddedEvent/#{k}").text, k
93
+ end
94
+ end
95
+
96
+ def test_gerrit_more_comment_added
97
+ builder = JenkinsJob::Builder.new
98
+
99
+ builder.flow 'foo' do
100
+ gerrit do
101
+ comment_added 'Code-Review' => '2', 'Verified' => '1'
102
+ end
103
+ end
104
+
105
+ actual = builder.config_as_xml_node('foo')
106
+
107
+ { 1 => { 'verdictCategory' => 'Code-Review', 'commentAddedTriggerApprovalValue' => '2' },
108
+ 2 => { 'verdictCategory' => 'Verified', 'commentAddedTriggerApprovalValue' => '1' } }.each do |item, data|
109
+ data.each do |k, v|
110
+ assert_equal v, actual.xpath('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
111
+ 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/triggerOnEvents/' \
112
+ "com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginCommentAddedEvent[#{item}]/#{k}").text,
113
+ "item #{item}, #{k}"
114
+ end
115
+ end
116
+ end
117
+ end
data/test/test_git.rb CHANGED
@@ -1,80 +1,80 @@
1
- require_relative './test_xml_generator'
2
-
3
- class TestXmlGit < Test::Unit::TestCase
4
- def test_git
5
- builder = JenkinsJob::Builder.new
6
-
7
- builder.freestyle 'foo' do
8
- git do
9
- url 'ssh://bar@gerrit.mycompany.com:29418/foo'
10
- basedir 'foo'
11
- reference_repo '$HOME/foo.git'
12
- branches '$GERRIT_BRANCH'
13
- refspec '$GERRIT_REFSPEC'
14
- choosing_strategy 'gerrit'
15
- git_config_name 'bar'
16
- git_config_email 'bar@mycompany.com'
17
- clean true
18
- end
19
- end
20
-
21
- actual = builder.config_as_xml_node('foo')
22
-
23
- assert_equal '2', actual.xpath("./project/scm[contains(@class,'hudson.plugins.git.GitSCM') and @plugin='git@2.0']/configVersion").text
24
-
25
- { 'name' => 'origin', 'refspec' => '$GERRIT_REFSPEC',
26
- 'url' => 'ssh://bar@gerrit.mycompany.com:29418/foo' }.each do |k, v|
27
- assert_equal v, actual.xpath("./project/scm/userRemoteConfigs/hudson.plugins.git.UserRemoteConfig/#{k}").text, k
28
- end
29
-
30
- assert_equal '$GERRIT_BRANCH', actual.xpath('./project/scm/branches/hudson.plugins.git.BranchSpec/name').text
31
-
32
- assert actual.at('./project/scm/extensions/hudson.plugins.git.extensions.impl.BuildChooserSetting/' \
33
- "buildChooser[contains(@class,'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTriggerBuildChooser')]")
34
-
35
- assert_equal 'foo', actual.xpath('./project/scm/extensions/' \
36
- 'hudson.plugins.git.extensions.impl.RelativeTargetDirectory/relativeTargetDir').text
37
- assert_equal '$HOME/foo.git', actual.xpath('./project/scm/extensions/' \
38
- 'hudson.plugins.git.extensions.impl.CloneOption/reference').text
39
-
40
- { 'name' => 'bar', 'email' => 'bar@mycompany.com' }.each do |k, v|
41
- assert_equal v, actual.xpath("./project/scm/extensions/hudson.plugins.git.extensions.impl.UserIdentity/#{k}").text, k
42
- end
43
-
44
- assert actual.at('./project/scm/extensions/hudson.plugins.git.extensions.impl.CleanCheckout')
45
- end
46
-
47
- def test_filter_by_path
48
- builder = JenkinsJob::Builder.new
49
-
50
- builder.freestyle 'foo' do
51
- git do
52
- url 'ssh://bar@gerrit.mycompany.com:29418/foo/a'
53
- file 'src/a/.*',
54
- 'src/Db/a/.*'
55
- end
56
- end
57
-
58
- actual = builder.config_as_xml_node('foo')
59
-
60
- assert_equal "src/a/.*\nsrc/Db/a/.*", actual.xpath('./project/scm/extensions/' \
61
- 'hudson.plugins.git.extensions.impl.PathRestriction/includedRegions').text
62
- end
63
-
64
- def test_jgit
65
- builder = JenkinsJob::Builder.new
66
-
67
- builder.freestyle 'foo' do
68
- git do
69
- url 'bar@git.mycompany.com:/foo'
70
- jgit
71
- credentials 'bar'
72
- end
73
- end
74
-
75
- actual = builder.config_as_xml_node('foo')
76
-
77
- assert_equal 'jgit', actual.xpath('./project/scm/gitTool').text
78
- assert_equal 'bar', actual.xpath('./project/scm/userRemoteConfigs/hudson.plugins.git.UserRemoteConfig/credentialsId').text
79
- end
80
- end
1
+ require_relative './test_xml_generator'
2
+
3
+ class TestXmlGit < Test::Unit::TestCase
4
+ def test_git
5
+ builder = JenkinsJob::Builder.new
6
+
7
+ builder.freestyle 'foo' do
8
+ git do
9
+ url 'ssh://bar@gerrit.mycompany.com:29418/foo'
10
+ basedir 'foo'
11
+ reference_repo '$HOME/foo.git'
12
+ branches '$GERRIT_BRANCH'
13
+ refspec '$GERRIT_REFSPEC'
14
+ choosing_strategy 'gerrit'
15
+ git_config_name 'bar'
16
+ git_config_email 'bar@mycompany.com'
17
+ clean true
18
+ end
19
+ end
20
+
21
+ actual = builder.config_as_xml_node('foo')
22
+
23
+ assert_equal '2', actual.xpath("./project/scm[contains(@class,'hudson.plugins.git.GitSCM') and @plugin='git@2.0']/configVersion").text
24
+
25
+ { 'name' => 'origin', 'refspec' => '$GERRIT_REFSPEC',
26
+ 'url' => 'ssh://bar@gerrit.mycompany.com:29418/foo' }.each do |k, v|
27
+ assert_equal v, actual.xpath("./project/scm/userRemoteConfigs/hudson.plugins.git.UserRemoteConfig/#{k}").text, k
28
+ end
29
+
30
+ assert_equal '$GERRIT_BRANCH', actual.xpath('./project/scm/branches/hudson.plugins.git.BranchSpec/name').text
31
+
32
+ assert actual.at('./project/scm/extensions/hudson.plugins.git.extensions.impl.BuildChooserSetting/' \
33
+ "buildChooser[contains(@class,'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTriggerBuildChooser')]")
34
+
35
+ assert_equal 'foo', actual.xpath('./project/scm/extensions/' \
36
+ 'hudson.plugins.git.extensions.impl.RelativeTargetDirectory/relativeTargetDir').text
37
+ assert_equal '$HOME/foo.git', actual.xpath('./project/scm/extensions/' \
38
+ 'hudson.plugins.git.extensions.impl.CloneOption/reference').text
39
+
40
+ { 'name' => 'bar', 'email' => 'bar@mycompany.com' }.each do |k, v|
41
+ assert_equal v, actual.xpath("./project/scm/extensions/hudson.plugins.git.extensions.impl.UserIdentity/#{k}").text, k
42
+ end
43
+
44
+ assert actual.at('./project/scm/extensions/hudson.plugins.git.extensions.impl.CleanCheckout')
45
+ end
46
+
47
+ def test_filter_by_path
48
+ builder = JenkinsJob::Builder.new
49
+
50
+ builder.freestyle 'foo' do
51
+ git do
52
+ url 'ssh://bar@gerrit.mycompany.com:29418/foo/a'
53
+ file 'src/a/.*',
54
+ 'src/Db/a/.*'
55
+ end
56
+ end
57
+
58
+ actual = builder.config_as_xml_node('foo')
59
+
60
+ assert_equal "src/a/.*\nsrc/Db/a/.*", actual.xpath('./project/scm/extensions/' \
61
+ 'hudson.plugins.git.extensions.impl.PathRestriction/includedRegions').text
62
+ end
63
+
64
+ def test_jgit
65
+ builder = JenkinsJob::Builder.new
66
+
67
+ builder.freestyle 'foo' do
68
+ git do
69
+ url 'bar@git.mycompany.com:/foo'
70
+ jgit
71
+ credentials 'bar'
72
+ end
73
+ end
74
+
75
+ actual = builder.config_as_xml_node('foo')
76
+
77
+ assert_equal 'jgit', actual.xpath('./project/scm/gitTool').text
78
+ assert_equal 'bar', actual.xpath('./project/scm/userRemoteConfigs/hudson.plugins.git.UserRemoteConfig/credentialsId').text
79
+ end
80
+ end