rubyjobbuilderdsl 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) 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.rb +2 -2
  16. data/lib/rubyjobbuilderdsl/buildstep/ant.rb +29 -29
  17. data/lib/rubyjobbuilderdsl/buildstep/copyartifact.rb +23 -23
  18. data/lib/rubyjobbuilderdsl/buildstep/inject_env.rb +18 -18
  19. data/lib/rubyjobbuilderdsl/buildstep/phase.rb +19 -19
  20. data/lib/rubyjobbuilderdsl/buildstep/phase_job.rb +26 -26
  21. data/lib/rubyjobbuilderdsl/buildstep/shell.rb +24 -24
  22. data/lib/rubyjobbuilderdsl/buildstep/xvfb.rb +46 -46
  23. data/lib/rubyjobbuilderdsl/common.rb +140 -140
  24. data/lib/rubyjobbuilderdsl/common/artifactory.rb +33 -33
  25. data/lib/rubyjobbuilderdsl/common/blocking_job.rb +11 -11
  26. data/lib/rubyjobbuilderdsl/common/build_timeout.rb +23 -23
  27. data/lib/rubyjobbuilderdsl/common/gerrit.rb +53 -53
  28. data/lib/rubyjobbuilderdsl/common/git.rb +76 -76
  29. data/lib/rubyjobbuilderdsl/common/logrotate.rb +24 -24
  30. data/lib/rubyjobbuilderdsl/common/parameter.rb +22 -22
  31. data/lib/rubyjobbuilderdsl/common/password.rb +12 -12
  32. data/lib/rubyjobbuilderdsl/common/pollscm.rb +10 -10
  33. data/lib/rubyjobbuilderdsl/common/scms.rb +18 -18
  34. data/lib/rubyjobbuilderdsl/common/throttle.rb +24 -24
  35. data/lib/rubyjobbuilderdsl/common/timed.rb +10 -10
  36. data/lib/rubyjobbuilderdsl/common/timestamps.rb +6 -6
  37. data/lib/rubyjobbuilderdsl/deployer.rb +95 -95
  38. data/lib/rubyjobbuilderdsl/flow.rb +14 -14
  39. data/lib/rubyjobbuilderdsl/freestyle.rb +65 -65
  40. data/lib/rubyjobbuilderdsl/jenkins_client.rb +203 -203
  41. data/lib/rubyjobbuilderdsl/multijob.rb +24 -24
  42. data/lib/rubyjobbuilderdsl/postbuild.rb +160 -160
  43. data/lib/rubyjobbuilderdsl/postbuild/archive.rb +23 -23
  44. data/lib/rubyjobbuilderdsl/postbuild/chucknorris_publisher.rb +6 -6
  45. data/lib/rubyjobbuilderdsl/postbuild/claim_publisher.rb +6 -6
  46. data/lib/rubyjobbuilderdsl/postbuild/cloverphp_publisher.rb +36 -36
  47. data/lib/rubyjobbuilderdsl/postbuild/cucumber_json_publisher.rb +20 -20
  48. data/lib/rubyjobbuilderdsl/postbuild/email_publisher.rb +23 -23
  49. data/lib/rubyjobbuilderdsl/postbuild/game_publisher.rb +6 -6
  50. data/lib/rubyjobbuilderdsl/postbuild/groovy.rb +10 -10
  51. data/lib/rubyjobbuilderdsl/postbuild/html_publisher.rb +27 -27
  52. data/lib/rubyjobbuilderdsl/postbuild/javadoc_publisher.rb +19 -19
  53. data/lib/rubyjobbuilderdsl/postbuild/logparser.rb +21 -21
  54. data/lib/rubyjobbuilderdsl/postbuild/nunit_publisher.rb +21 -21
  55. data/lib/rubyjobbuilderdsl/postbuild/pmd_publisher.rb +19 -19
  56. data/lib/rubyjobbuilderdsl/postbuild/script.rb +14 -14
  57. data/lib/rubyjobbuilderdsl/postbuild/tap_publisher.rb +44 -44
  58. data/lib/rubyjobbuilderdsl/postbuild/trigger.rb +38 -38
  59. data/lib/rubyjobbuilderdsl/postbuild/xunit_publisher.rb +35 -35
  60. data/lib/rubyjobbuilderdsl/view.rb +14 -14
  61. data/lib/rubyjobbuilderdsl/xml_generator.rb +1 -1
  62. data/rubyjobbuilderdsl.gemspec +2 -2
  63. data/rubyjobbuilderdsl.sublime-project +14 -14
  64. data/run_tests.sh +7 -7
  65. data/sample/hello_mars.rb +27 -27
  66. data/sample/hello_mars.xml +18 -0
  67. data/sample/hello_world-post.xml +40 -0
  68. data/sample/local.ini +4 -4
  69. data/sample/test.xml +21 -0
  70. data/test/test_ant.rb +38 -38
  71. data/test/test_archive.rb +24 -24
  72. data/test/test_artifactory.rb +26 -26
  73. data/test/test_blocking_job.rb +18 -18
  74. data/test/test_chucknorris_publisher.rb +17 -17
  75. data/test/test_claim_publisher.rb +17 -17
  76. data/test/test_cloverphp.rb +33 -33
  77. data/test/test_concurrent.rb +44 -44
  78. data/test/test_copyartifact.rb +45 -45
  79. data/test/test_cucumber_json_publisher.rb +30 -30
  80. data/test/test_default_setting.rb +29 -29
  81. data/test/test_email_publisher.rb +44 -44
  82. data/test/test_flow.rb +19 -19
  83. data/test/test_freestyle.rb +52 -52
  84. data/test/test_game_publisher.rb +17 -17
  85. data/test/test_gerrit.rb +117 -117
  86. data/test/test_git.rb +80 -80
  87. data/test/test_html_publisher.rb +57 -57
  88. data/test/test_inject.rb +23 -23
  89. data/test/test_javadoc.rb +22 -22
  90. data/test/test_logparser.rb +24 -24
  91. data/test/test_logrotate.rb +22 -22
  92. data/test/test_multijob.rb +50 -50
  93. data/test/test_nunit_publisher.rb +20 -20
  94. data/test/test_parameter.rb +44 -44
  95. data/test/test_password.rb +17 -17
  96. data/test/test_pmd.rb +22 -22
  97. data/test/test_pollscm.rb +15 -15
  98. data/test/test_postbuild_groovy.rb +21 -21
  99. data/test/test_postbuild_script.rb +24 -24
  100. data/test/test_postbuild_trigger.rb +170 -170
  101. data/test/test_scms.rb +31 -31
  102. data/test/test_tap_publisher.rb +25 -25
  103. data/test/test_timed.rb +15 -15
  104. data/test/test_timeout.rb +20 -20
  105. data/test/test_timestamps.rb +14 -14
  106. data/test/test_xml_generator.rb +28 -28
  107. data/test/test_xunit_publisher.rb +22 -22
  108. data/test/test_xvfb.rb +35 -35
  109. metadata +11 -10
  110. data/rubyjobbuilderdsl-0.0.3.gem +0 -0
  111. data/sample/Schedule-sample-pipeline.xml +0 -32
@@ -1,22 +1,22 @@
1
- module JenkinsJob
2
- module Common
3
- class Parameter < BasicObject
4
- attr_reader :name, :default_, :description_
5
-
6
- def initialize(name)
7
- @name = name
8
- end
9
-
10
- def default(value)
11
- @default_ = value
12
- end
13
-
14
- def description(value)
15
- @description_ = value
16
- end
17
- end
18
-
19
- class PasswordParameter < Parameter
20
- end
21
- end
22
- end
1
+ module JenkinsJob
2
+ module Common
3
+ class Parameter < BasicObject
4
+ attr_reader :name, :default_, :description_
5
+
6
+ def initialize(name)
7
+ @name = name
8
+ end
9
+
10
+ def default(value)
11
+ @default_ = value
12
+ end
13
+
14
+ def description(value)
15
+ @description_ = value
16
+ end
17
+ end
18
+
19
+ class PasswordParameter < Parameter
20
+ end
21
+ end
22
+ end
@@ -1,12 +1,12 @@
1
- module JenkinsJob
2
- module Common
3
- class Password < BasicObject
4
- attr_reader :name_, :password_
5
-
6
- def initialize(name, password)
7
- @name_ = name
8
- @password_ = password
9
- end
10
- end
11
- end
12
- end
1
+ module JenkinsJob
2
+ module Common
3
+ class Password < BasicObject
4
+ attr_reader :name_, :password_
5
+
6
+ def initialize(name, password)
7
+ @name_ = name
8
+ @password_ = password
9
+ end
10
+ end
11
+ end
12
+ end
@@ -1,10 +1,10 @@
1
- module JenkinsJob
2
- module Common
3
- class PollSCM < BasicObject
4
- attr_reader :value_
5
- def initialize(value)
6
- @value_ = value
7
- end
8
- end
9
- end
10
- end
1
+ module JenkinsJob
2
+ module Common
3
+ class PollSCM < BasicObject
4
+ attr_reader :value_
5
+ def initialize(value)
6
+ @value_ = value
7
+ end
8
+ end
9
+ end
10
+ end
@@ -1,18 +1,18 @@
1
- module JenkinsJob
2
- module Common
3
- class Scms < BasicObject
4
- attr_reader :scms_
5
-
6
- def initialize
7
- @scms_ = []
8
- end
9
-
10
- def git(&block)
11
- git = Git.new
12
- git.instance_eval(&block)
13
-
14
- @scms_ << git
15
- end
16
- end
17
- end
18
- end
1
+ module JenkinsJob
2
+ module Common
3
+ class Scms < BasicObject
4
+ attr_reader :scms_
5
+
6
+ def initialize
7
+ @scms_ = []
8
+ end
9
+
10
+ def git(&block)
11
+ git = Git.new
12
+ git.instance_eval(&block)
13
+
14
+ @scms_ << git
15
+ end
16
+ end
17
+ end
18
+ end
@@ -1,24 +1,24 @@
1
- module JenkinsJob
2
- module Common
3
- class Throttle < BasicObject
4
- attr_reader :categories_, :max_per_node_, :max_total_
5
-
6
- def initialize
7
- @max_per_node_ = 1
8
- @max_total_ = 0
9
- end
10
-
11
- def max_per_node(value)
12
- @max_per_node_ = value
13
- end
14
-
15
- def max_total(value)
16
- @max_total_ = value
17
- end
18
-
19
- def category(*value)
20
- @categories_ = value
21
- end
22
- end
23
- end
24
- end
1
+ module JenkinsJob
2
+ module Common
3
+ class Throttle < BasicObject
4
+ attr_reader :categories_, :max_per_node_, :max_total_
5
+
6
+ def initialize
7
+ @max_per_node_ = 1
8
+ @max_total_ = 0
9
+ end
10
+
11
+ def max_per_node(value)
12
+ @max_per_node_ = value
13
+ end
14
+
15
+ def max_total(value)
16
+ @max_total_ = value
17
+ end
18
+
19
+ def category(*value)
20
+ @categories_ = value
21
+ end
22
+ end
23
+ end
24
+ end
@@ -1,10 +1,10 @@
1
- module JenkinsJob
2
- module Common
3
- class Timed < BasicObject
4
- attr_reader :value_
5
- def initialize(value)
6
- @value_ = value
7
- end
8
- end
9
- end
10
- end
1
+ module JenkinsJob
2
+ module Common
3
+ class Timed < BasicObject
4
+ attr_reader :value_
5
+ def initialize(value)
6
+ @value_ = value
7
+ end
8
+ end
9
+ end
10
+ end
@@ -1,6 +1,6 @@
1
- module JenkinsJob
2
- module Common
3
- class Timestamps < BasicObject
4
- end
5
- end
6
- end
1
+ module JenkinsJob
2
+ module Common
3
+ class Timestamps < BasicObject
4
+ end
5
+ end
6
+ end
@@ -1,95 +1,95 @@
1
- require_relative './jenkins_client'
2
-
3
- module JenkinsJob
4
- class Deployer
5
- def initialize(*builder)
6
- @builders = builder
7
- end
8
-
9
- def each(&block)
10
- @builders.each do |b|
11
- b.generate_xml do |name, xml, type|
12
- yield name, xml, type if block
13
- end
14
- end
15
- end
16
-
17
- def generate_xml
18
- outputdir = ARGV.find { |z| z =~ /--output-dir=/ }.to_s.split('=')[1]
19
- usage unless outputdir
20
-
21
- each do |name, xml, type|
22
- path = "#{outputdir}/#{name}.xml"
23
- $stdout.puts "creating #{type} #{path}"
24
- File.open(path, 'w+') do |f|
25
- f.write(xml)
26
- end
27
- end
28
- end
29
-
30
- def deploy(&block)
31
- config_file = ARGV.find { |z| z =~ /--config-file=/ }.to_s.split('=')[1]
32
- usage unless config_file
33
-
34
- config = {}
35
- File.read(config_file).each_line do |line|
36
- if line =~ /\S+\=\S+/
37
- key, val = line.split('=')
38
- config[key] = val.chomp
39
- end
40
- end
41
-
42
- client = JenkinsClient.new(config['url'], config['user'], config['password'])
43
- deployer = self
44
- client.instance_eval do
45
- @deployer = deployer
46
- def each(&block)
47
- @deployer.each(&block)
48
- end
49
- end
50
-
51
- unless block
52
- block = proc do
53
- each do |name, xml, type|
54
- upload_job(name, xml) if type == :job
55
- upload_view(name, xml) if type == :view
56
- end
57
- end
58
- end
59
-
60
- client.instance_eval(&block)
61
- end
62
-
63
- def usage
64
- $stderr.puts(<<-EOS
65
- Usage:
66
-
67
- ruby #{File.basename($PROGRAM_NAME)} --xml --output-dir=.|--deploy --config-file=config/localhost.ini]
68
-
69
- Example:
70
-
71
- ruby #{File.basename($PROGRAM_NAME)} --xml --output-dir=.
72
- ruby #{File.basename($PROGRAM_NAME)} --deploy --config-file=config/localhost.ini
73
- EOS
74
- )
75
- exit 1
76
- end
77
-
78
- def run(&block)
79
- xml = ARGV.find { |a| a == '--xml' }
80
- deploy = ARGV.find { |a| a == '--deploy' }
81
-
82
- if xml
83
- generate_xml
84
- exit 0
85
- end
86
-
87
- if deploy
88
- deploy(&block)
89
- exit 0
90
- end
91
-
92
- usage
93
- end
94
- end
95
- end
1
+ require_relative './jenkins_client'
2
+
3
+ module JenkinsJob
4
+ class Deployer
5
+ def initialize(*builder)
6
+ @builders = builder
7
+ end
8
+
9
+ def each(&block)
10
+ @builders.each do |b|
11
+ b.generate_xml do |name, xml, type|
12
+ yield name, xml, type if block
13
+ end
14
+ end
15
+ end
16
+
17
+ def generate_xml
18
+ outputdir = ARGV.find { |z| z =~ /--output-dir=/ }.to_s.split('=')[1]
19
+ usage unless outputdir
20
+
21
+ each do |name, xml, type|
22
+ path = "#{outputdir}/#{name}.xml"
23
+ $stdout.puts "creating #{type} #{path}"
24
+ File.open(path, 'w+') do |f|
25
+ f.write(xml)
26
+ end
27
+ end
28
+ end
29
+
30
+ def deploy(&block)
31
+ config_file = ARGV.find { |z| z =~ /--config-file=/ }.to_s.split('=')[1]
32
+ usage unless config_file
33
+
34
+ config = {}
35
+ File.read(config_file).each_line do |line|
36
+ if line =~ /\S+\=\S+/
37
+ key, val = line.split('=')
38
+ config[key] = val.chomp
39
+ end
40
+ end
41
+
42
+ client = JenkinsClient.new(config['url'], config['user'], config['password'])
43
+ deployer = self
44
+ client.instance_eval do
45
+ @deployer = deployer
46
+ def each(&block)
47
+ @deployer.each(&block)
48
+ end
49
+ end
50
+
51
+ unless block
52
+ block = proc do
53
+ each do |name, xml, type|
54
+ upload_job(name, xml) if type == :job
55
+ upload_view(name, xml) if type == :view
56
+ end
57
+ end
58
+ end
59
+
60
+ client.instance_eval(&block)
61
+ end
62
+
63
+ def usage
64
+ $stderr.puts(<<-EOS
65
+ Usage:
66
+
67
+ ruby #{File.basename($PROGRAM_NAME)} --xml --output-dir=.|--deploy --config-file=config/localhost.ini]
68
+
69
+ Example:
70
+
71
+ ruby #{File.basename($PROGRAM_NAME)} --xml --output-dir=.
72
+ ruby #{File.basename($PROGRAM_NAME)} --deploy --config-file=config/localhost.ini
73
+ EOS
74
+ )
75
+ exit 1
76
+ end
77
+
78
+ def run(&block)
79
+ xml = ARGV.find { |a| a == '--xml' }
80
+ deploy = ARGV.find { |a| a == '--deploy' }
81
+
82
+ if xml
83
+ generate_xml
84
+ exit 0
85
+ end
86
+
87
+ if deploy
88
+ deploy(&block)
89
+ exit 0
90
+ end
91
+
92
+ usage
93
+ end
94
+ end
95
+ end
@@ -1,14 +1,14 @@
1
- module JenkinsJob
2
- class Flow < Common::Common
3
- attr_reader :name, :dsl_
4
-
5
- def initialize(name, builder)
6
- super(builder)
7
- @name = name
8
- end
9
-
10
- def dsl(value)
11
- @dsl_ = value
12
- end
13
- end
14
- end
1
+ module JenkinsJob
2
+ class Flow < Common::Common
3
+ attr_reader :name, :dsl_
4
+
5
+ def initialize(name, builder)
6
+ super(builder)
7
+ @name = name
8
+ end
9
+
10
+ def dsl(value)
11
+ @dsl_ = value
12
+ end
13
+ end
14
+ end
@@ -1,65 +1,65 @@
1
- require_relative './common'
2
- require_relative './buildstep/shell'
3
- require_relative './buildstep/copyartifact'
4
- require_relative './buildstep/inject_env'
5
- require_relative './buildstep/ant'
6
- require_relative './buildstep/xvfb'
7
-
8
- module JenkinsJob
9
- class FreeStyle < Common::Common
10
- include BuildStep
11
-
12
- attr_reader :name, :workspace_, :builders_
13
-
14
- def initialize(name, builder)
15
- super(builder)
16
- @name = name
17
- @builders_ = []
18
- end
19
-
20
- def workspace(value)
21
- @workspace_ = value
22
- end
23
-
24
- def shell(cmd)
25
- @builders_ << Shell.new(cmd)
26
- end
27
-
28
- def batch(cmd)
29
- @builders_ << Batch.new(cmd)
30
- end
31
-
32
- def powershell(cmd)
33
- @builders_ << Powershell.new(cmd)
34
- end
35
-
36
- def inject_env(&block)
37
- inject = InjectEnv.new
38
- inject.instance_eval(&block) if block_given?
39
-
40
- @builders_ << inject
41
- end
42
-
43
- def xvfb(&block)
44
- xvfb = Xvfb.new
45
- xvfb.instance_eval(&block) if block_given?
46
-
47
- @wrappers_['xvfb'] = xvfb
48
- end
49
-
50
- def ant(&block)
51
- ant = Ant.new
52
- ant.instance_eval(&block) if block_given?
53
-
54
- @builders_ << ant
55
- end
56
-
57
- def copyartifact(artifact_job, &block)
58
- # sandbox for copy artifacts dsl
59
- copyartifact = CopyArtifact.new(artifact_job)
60
- copyartifact.instance_eval(&block)
61
-
62
- @builders_ << copyartifact
63
- end
64
- end
65
- end
1
+ require_relative './common'
2
+ require_relative './buildstep/shell'
3
+ require_relative './buildstep/copyartifact'
4
+ require_relative './buildstep/inject_env'
5
+ require_relative './buildstep/ant'
6
+ require_relative './buildstep/xvfb'
7
+
8
+ module JenkinsJob
9
+ class FreeStyle < Common::Common
10
+ include BuildStep
11
+
12
+ attr_reader :name, :workspace_, :builders_
13
+
14
+ def initialize(name, builder)
15
+ super(builder)
16
+ @name = name
17
+ @builders_ = []
18
+ end
19
+
20
+ def workspace(value)
21
+ @workspace_ = value
22
+ end
23
+
24
+ def shell(cmd)
25
+ @builders_ << Shell.new(cmd)
26
+ end
27
+
28
+ def batch(cmd)
29
+ @builders_ << Batch.new(cmd)
30
+ end
31
+
32
+ def powershell(cmd)
33
+ @builders_ << Powershell.new(cmd)
34
+ end
35
+
36
+ def inject_env(&block)
37
+ inject = InjectEnv.new
38
+ inject.instance_eval(&block) if block_given?
39
+
40
+ @builders_ << inject
41
+ end
42
+
43
+ def xvfb(&block)
44
+ xvfb = Xvfb.new
45
+ xvfb.instance_eval(&block) if block_given?
46
+
47
+ @wrappers_['xvfb'] = xvfb
48
+ end
49
+
50
+ def ant(&block)
51
+ ant = Ant.new
52
+ ant.instance_eval(&block) if block_given?
53
+
54
+ @builders_ << ant
55
+ end
56
+
57
+ def copyartifact(artifact_job, &block)
58
+ # sandbox for copy artifacts dsl
59
+ copyartifact = CopyArtifact.new(artifact_job)
60
+ copyartifact.instance_eval(&block)
61
+
62
+ @builders_ << copyartifact
63
+ end
64
+ end
65
+ end