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
@@ -1,140 +1,140 @@
1
- require_relative 'common/parameter'
2
- require_relative 'common/git'
3
- require_relative 'common/gerrit'
4
- require_relative 'common/logrotate'
5
- require_relative 'common/scms'
6
- require_relative 'common/throttle'
7
- require_relative 'common/build_timeout'
8
- require_relative 'common/artifactory'
9
- require_relative 'common/pollscm'
10
- require_relative 'common/timed'
11
- require_relative 'common/password'
12
- require_relative 'common/timestamps'
13
- require_relative 'common/blocking_job'
14
- require_relative 'postbuild'
15
-
16
- module JenkinsJob
17
- module Common
18
- class Common
19
- attr_reader :builder,
20
- :node_, :quiet_period_, :logrotate_,
21
- :parameters_, :postbuild_, :scm_,
22
- :triggers_, :concurrent_, :wrappers_, :properties_,
23
- :desc_
24
-
25
- def initialize(builder)
26
- @builder = builder
27
- @triggers_ = {}
28
- @wrappers_ = {}
29
- @properties_ = {}
30
- @parameters_ = {}
31
- @concurrent_ = false
32
- end
33
-
34
- def node(value)
35
- @node_ = value
36
- end
37
-
38
- def quiet_period(value)
39
- @quiet_period_ = value
40
- end
41
-
42
- def logrotate(&block)
43
- rotate = LogRotate.new
44
- rotate.instance_eval(&block)
45
- @logrotate_ = rotate
46
- end
47
-
48
- def parameter(name, &block)
49
- param = Parameter.new(name)
50
- param.instance_eval(&block) if block_given?
51
-
52
- @parameters_[name] = param
53
- end
54
-
55
- def password_parameter(name, &block)
56
- param = PasswordParameter.new(name)
57
- param.instance_eval(&block) if block_given?
58
-
59
- @parameters_[name] = param
60
- end
61
-
62
- def postbuild(&block)
63
- @postbuild_ = ::JenkinsJob::Postbuild::Postbuild.new(self) unless @postbuild_
64
- @postbuild_.instance_eval(&block)
65
- end
66
-
67
- def git(&block)
68
- git = Git.new
69
- git.instance_eval(&block)
70
-
71
- @scm_ = git
72
- end
73
-
74
- def scms(&block)
75
- scms = Scms.new
76
- scms.instance_eval(&block)
77
-
78
- @scm_ = scms
79
- end
80
-
81
- def gerrit(&block)
82
- gerrit = Gerrit.new
83
- gerrit.instance_eval(&block)
84
-
85
- @triggers_['gerrit'] = gerrit
86
- end
87
-
88
- def pollscm(value)
89
- @triggers_['pollscm'] = PollSCM.new(value)
90
- end
91
-
92
- def timed(value)
93
- @triggers_['timed'] = Timed.new(value)
94
- end
95
-
96
- def concurrent(&block)
97
- @concurrent_ = true
98
-
99
- throttle = Throttle.new
100
- throttle.instance_eval(&block)
101
-
102
- @properties_['throttle'] = throttle
103
- end
104
-
105
- def timestamps
106
- @wrappers_['timestamp'] = Timestamps.new
107
- end
108
-
109
- def timeout(type, &block)
110
- build_timeout = BuildTimeout.new(type)
111
- build_timeout.instance_eval(&block)
112
-
113
- @wrappers_['timeout'] = build_timeout
114
- end
115
-
116
- def artifactory(&block)
117
- artifact = Artifactory.new
118
- artifact.instance_eval(&block)
119
-
120
- @wrappers_['artifactory'] = artifact
121
- end
122
-
123
- def password(name, password)
124
- password = Password.new(name, password)
125
-
126
- @wrappers_['password'] = password
127
- end
128
-
129
- def blocked_by(*value)
130
- blocking_job = BlockingJob.new(value)
131
-
132
- @properties_['blocking_job'] = blocking_job
133
- end
134
-
135
- def desc(value)
136
- @desc_ = value
137
- end
138
- end
139
- end
140
- end
1
+ require_relative 'common/parameter'
2
+ require_relative 'common/git'
3
+ require_relative 'common/gerrit'
4
+ require_relative 'common/logrotate'
5
+ require_relative 'common/scms'
6
+ require_relative 'common/throttle'
7
+ require_relative 'common/build_timeout'
8
+ require_relative 'common/artifactory'
9
+ require_relative 'common/pollscm'
10
+ require_relative 'common/timed'
11
+ require_relative 'common/password'
12
+ require_relative 'common/timestamps'
13
+ require_relative 'common/blocking_job'
14
+ require_relative 'postbuild'
15
+
16
+ module JenkinsJob
17
+ module Common
18
+ class Common
19
+ attr_reader :builder,
20
+ :node_, :quiet_period_, :logrotate_,
21
+ :parameters_, :postbuild_, :scm_,
22
+ :triggers_, :concurrent_, :wrappers_, :properties_,
23
+ :desc_
24
+
25
+ def initialize(builder)
26
+ @builder = builder
27
+ @triggers_ = {}
28
+ @wrappers_ = {}
29
+ @properties_ = {}
30
+ @parameters_ = {}
31
+ @concurrent_ = false
32
+ end
33
+
34
+ def node(value)
35
+ @node_ = value
36
+ end
37
+
38
+ def quiet_period(value)
39
+ @quiet_period_ = value
40
+ end
41
+
42
+ def logrotate(&block)
43
+ rotate = LogRotate.new
44
+ rotate.instance_eval(&block)
45
+ @logrotate_ = rotate
46
+ end
47
+
48
+ def parameter(name, &block)
49
+ param = Parameter.new(name)
50
+ param.instance_eval(&block) if block_given?
51
+
52
+ @parameters_[name] = param
53
+ end
54
+
55
+ def password_parameter(name, &block)
56
+ param = PasswordParameter.new(name)
57
+ param.instance_eval(&block) if block_given?
58
+
59
+ @parameters_[name] = param
60
+ end
61
+
62
+ def postbuild(&block)
63
+ @postbuild_ = ::JenkinsJob::Postbuild::Postbuild.new(self) unless @postbuild_
64
+ @postbuild_.instance_eval(&block)
65
+ end
66
+
67
+ def git(&block)
68
+ git = Git.new
69
+ git.instance_eval(&block)
70
+
71
+ @scm_ = git
72
+ end
73
+
74
+ def scms(&block)
75
+ scms = Scms.new
76
+ scms.instance_eval(&block)
77
+
78
+ @scm_ = scms
79
+ end
80
+
81
+ def gerrit(&block)
82
+ gerrit = Gerrit.new
83
+ gerrit.instance_eval(&block)
84
+
85
+ @triggers_['gerrit'] = gerrit
86
+ end
87
+
88
+ def pollscm(value)
89
+ @triggers_['pollscm'] = PollSCM.new(value)
90
+ end
91
+
92
+ def timed(value)
93
+ @triggers_['timed'] = Timed.new(value)
94
+ end
95
+
96
+ def concurrent(&block)
97
+ @concurrent_ = true
98
+
99
+ throttle = Throttle.new
100
+ throttle.instance_eval(&block)
101
+
102
+ @properties_['throttle'] = throttle
103
+ end
104
+
105
+ def timestamps
106
+ @wrappers_['timestamp'] = Timestamps.new
107
+ end
108
+
109
+ def timeout(type, &block)
110
+ build_timeout = BuildTimeout.new(type)
111
+ build_timeout.instance_eval(&block)
112
+
113
+ @wrappers_['timeout'] = build_timeout
114
+ end
115
+
116
+ def artifactory(&block)
117
+ artifact = Artifactory.new
118
+ artifact.instance_eval(&block)
119
+
120
+ @wrappers_['artifactory'] = artifact
121
+ end
122
+
123
+ def password(name, password)
124
+ password = Password.new(name, password)
125
+
126
+ @wrappers_['password'] = password
127
+ end
128
+
129
+ def blocked_by(*value)
130
+ blocking_job = BlockingJob.new(value)
131
+
132
+ @properties_['blocking_job'] = blocking_job
133
+ end
134
+
135
+ def desc(value)
136
+ @desc_ = value
137
+ end
138
+ end
139
+ end
140
+ 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