rubyjobbuilderdsl 0.0.5 → 0.0.6

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 (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
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 7739a21c26d5aeba0ab33f9b79abbeb1072b0c59
4
- data.tar.gz: a5fdf719d931b258bf314afb3427b28d023cd3ce
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ YmYzOGU5ZjA1NDBhOWFkMjEzMTgwZjUzN2ZmODhkMDJiNGFkZjJhYQ==
5
+ data.tar.gz: !binary |-
6
+ MzY1ZjdlMDJjNDU3MjY1Nzc5MzI3OTVkMDEzY2Q5Y2NhYjE1NDc2OA==
5
7
  SHA512:
6
- metadata.gz: bb92c25bdcc05f2326243b44c124f96bb226e55f5c9d480c18234c9a4e10e467a9eab9644f4b28d07735e8aa3ca4acd135daf68b31ff1327e5ee0c4fbc0573d9
7
- data.tar.gz: 396beb5dde3a428e50cbe4a694d94a4676e2096147ae3c5895e8ccaa0179f6ab6b7de1371fce9bd440c127dfe613d6d4954c9ab2d2760ee8144816e02e125a1a
8
+ metadata.gz: !binary |-
9
+ OTExNjhkMDUwZjRlMTkzOTRlM2VkMTljMGE5YTA1ZWY0NDljOGZkOTk1NjY4
10
+ MWM2NjQ5OGE3YWU2MWJiZWI5ZmQxZjhjYjBlZTI2NjIzNTJiZTIwN2ZlODUx
11
+ NWFjNWQxYmQ5ZDVmYmNiODYwZmU0MWY5YzY3ZDlhNGNlYmJiZWE=
12
+ data.tar.gz: !binary |-
13
+ N2NkNzcwZDg4OGMyNDI0MmNhZmU3OTA5MTdjY2M3ZDdlMDg5NjBmYWYzZDQ0
14
+ NzE0MTU4NjdmZGRlNzc2ZTY3NGIzMjczZDg3Y2ExMTFiNDQ5NjcyNWIwZWJk
15
+ N2UzYzJlODIzODJmZmM5Yzg5NGE0OTM4ZjM0YzNmMmJlMTk1NmI=
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
- source 'http://rubygems.org'
2
-
3
- gem 'rubocop'
4
- gem 'builder'
5
- gem 'nokogiri'
6
- gem 'rake'
1
+ source 'http://rubygems.org'
2
+
3
+ gem 'rubocop'
4
+ gem 'builder'
5
+ gem 'nokogiri'
6
+ gem 'rake'
data/Gemfile.lock CHANGED
@@ -1,41 +1,41 @@
1
- GEM
2
- remote: http://rubygems.org/
3
- specs:
4
- ast (2.0.0)
5
- astrolabe (1.3.0)
6
- parser (>= 2.2.0.pre.3, < 3.0)
7
- builder (3.2.2)
8
- mini_portile (0.6.0)
9
- nokogiri (1.6.3.1)
10
- mini_portile (= 0.6.0)
11
- nokogiri (1.6.3.1-x64-mingw32)
12
- mini_portile (= 0.6.0)
13
- nokogiri (1.6.3.1-x86-mingw32)
14
- mini_portile (= 0.6.0)
15
- parser (2.2.0.pre.4)
16
- ast (>= 1.1, < 3.0)
17
- slop (~> 3.4, >= 3.4.5)
18
- powerpack (0.0.9)
19
- rainbow (2.0.0)
20
- rake (0.9.6)
21
- rubocop (0.26.0)
22
- astrolabe (~> 1.3)
23
- parser (>= 2.2.0.pre.4, < 3.0)
24
- powerpack (~> 0.0.6)
25
- rainbow (>= 1.99.1, < 3.0)
26
- ruby-progressbar (~> 1.4)
27
- ruby-progressbar (1.5.1)
28
- slop (3.6.0)
29
-
30
- PLATFORMS
31
- x64-mingw32
32
- x86-mingw32
33
-
34
- DEPENDENCIES
35
- builder
36
- nokogiri
37
- rake
38
- rubocop
39
-
40
- BUNDLED WITH
41
- 1.10.6
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ ast (2.0.0)
5
+ astrolabe (1.3.0)
6
+ parser (>= 2.2.0.pre.3, < 3.0)
7
+ builder (3.2.2)
8
+ mini_portile (0.6.0)
9
+ nokogiri (1.6.3.1)
10
+ mini_portile (= 0.6.0)
11
+ nokogiri (1.6.3.1-x64-mingw32)
12
+ mini_portile (= 0.6.0)
13
+ nokogiri (1.6.3.1-x86-mingw32)
14
+ mini_portile (= 0.6.0)
15
+ parser (2.2.0.pre.4)
16
+ ast (>= 1.1, < 3.0)
17
+ slop (~> 3.4, >= 3.4.5)
18
+ powerpack (0.0.9)
19
+ rainbow (2.0.0)
20
+ rake (0.9.6)
21
+ rubocop (0.26.0)
22
+ astrolabe (~> 1.3)
23
+ parser (>= 2.2.0.pre.4, < 3.0)
24
+ powerpack (~> 0.0.6)
25
+ rainbow (>= 1.99.1, < 3.0)
26
+ ruby-progressbar (~> 1.4)
27
+ ruby-progressbar (1.5.1)
28
+ slop (3.6.0)
29
+
30
+ PLATFORMS
31
+ x64-mingw32
32
+ x86-mingw32
33
+
34
+ DEPENDENCIES
35
+ builder
36
+ nokogiri
37
+ rake
38
+ rubocop
39
+
40
+ BUNDLED WITH
41
+ 1.10.6
data/LICENSE CHANGED
@@ -1,19 +1,19 @@
1
- Copyright (C) 2014 Wonga
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining a copy
4
- of this software and associated documentation files (the "Software"), to deal
5
- in the Software without restriction, including without limitation the rights
6
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- copies of the Software, and to permit persons to whom the Software is
8
- furnished to do so, subject to the following conditions:
9
-
10
- The above copyright notice and this permission notice shall be included in
11
- all copies or substantial portions of the Software.
12
-
13
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE
16
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
1
+ Copyright (C) 2014 Wonga
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
19
  THE SOFTWARE.
data/Rakefile CHANGED
@@ -1,12 +1,12 @@
1
- require 'rake/testtask'
2
- require 'rubocop/rake_task'
3
-
4
- Rake::TestTask.new do |t|
5
- t.libs << 'test'
6
- t.test_files = FileList['test/test*.rb']
7
- t.verbose = true
8
- end
9
-
10
- RuboCop::RakeTask.new
11
-
12
- task :default => [:rubocop, :test]
1
+ require 'rake/testtask'
2
+ require 'rubocop/rake_task'
3
+
4
+ Rake::TestTask.new do |t|
5
+ t.libs << 'test'
6
+ t.test_files = FileList['test/test*.rb']
7
+ t.verbose = true
8
+ end
9
+
10
+ RuboCop::RakeTask.new
11
+
12
+ task :default => [:rubocop, :test]
data/docs/common.md CHANGED
@@ -1,313 +1,313 @@
1
- ## Common vocabulary
2
-
3
- Common keywords are applicable for both freestyle job and flow job.
4
-
5
- **artifactory**
6
-
7
- Description: Deploy artifacts to jfrog artifactory server
8
-
9
- Multiple: Override
10
-
11
- Example
12
-
13
- builder.freestyle 'hello_world-build' do
14
- artifactory do
15
- server 'artifactory.acme.com'
16
- repository 'dev'
17
- deploy 'hello_world-1.0.$BUILD_NUMBER.zip'
18
- end
19
- end
20
-
21
- **blocked_by**
22
-
23
- Description: Block build if certain specified jobs are running
24
-
25
- Multiple: Add
26
-
27
- Example
28
-
29
- builder.freestyle 'hello_world-deploy' do
30
- blocked_by 'hello_world-sevicetest'
31
- end
32
-
33
- **Builder**
34
-
35
- Description: We create builder instance that will be used later to build jobs
36
-
37
- Multiple: N/A
38
-
39
- Example
40
-
41
- require 'rubyjobbuilderdsl'
42
- builder = JenkinsJob::Builder.new
43
-
44
- **concurrent**
45
-
46
- Description: Specify condition for multiple builds of the same job to run concurrently across all nodes of the same category
47
-
48
- Multiple: Override
49
-
50
- Example
51
-
52
- builder.freestyle 'hello_world-servicetest' do
53
- concurrent do
54
- max_per_node 1
55
- max_total 0
56
- category 'servicetest'
57
- end
58
- end
59
-
60
- **concurrent**
61
-
62
- Description: Specify condition for multiple builds of the same job to run concurrently across all nodes of the same project
63
-
64
- Multiple: Override
65
-
66
- Example
67
-
68
- builder.freestyle 'hello_world-build' do
69
- concurrent do
70
- max_per_node 2
71
- max_total 0
72
- end
73
- end
74
-
75
- **Deployer**
76
-
77
- Description: We create deployer instance that will be used to generate/deploy jobs config
78
-
79
- Multiple: N/A
80
-
81
- Example
82
-
83
- require 'rubyjobbuilderdsl'
84
- check_builder = JenkinsJob::Builder.new
85
- worker_builder = JenkinsJob::Builder.new
86
- JenkinsJob::Deployer.new(check_builder, worker_builder).run
87
-
88
-
89
- **Desc**
90
-
91
- Description: Specify project's description
92
-
93
- Multiple: Override
94
-
95
- Example
96
-
97
- builder.freestyle 'hello_world-build' do
98
- desc 'this is a hello world project'
99
- end
100
-
101
- **flow**
102
-
103
- Description: Add Create a flow job
104
-
105
- Multiple: Add
106
-
107
- Example
108
-
109
- builder.flow 'hello_world-check' do
110
- end
111
-
112
- **freestyle**
113
-
114
- Description: Add Create a freestyle job
115
-
116
- Multiple: Add
117
-
118
- Example
119
-
120
- builder.freestyle 'hello_world-build' do
121
- end
122
-
123
- **gerrit**
124
-
125
- Description: trigger the job on Gerrit event
126
-
127
- Multiple: Override
128
-
129
- Example
130
-
131
- builder.flow 'hello_world-post' do
132
- gerrit do
133
- end
134
- end
135
-
136
-
137
- **git**
138
-
139
- Description: Configure Git version as SCM
140
-
141
- Multiple: Override
142
-
143
- Example:
144
-
145
- builder.freestyle 'hello_world-master' do
146
- git do
147
- end
148
- end
149
-
150
- **logrotate**
151
-
152
- Description: Rotate/discard old builds
153
-
154
- Multiple: Override
155
-
156
- Example:
157
-
158
- builder.freestyle 'hello_world-master' do
159
- logrotate do
160
- days_to_keep 14
161
- num_to_keep -1
162
- artifact_days_to_keep 2
163
- artifact_num_to_keep -1
164
- end
165
- end
166
-
167
- **node**
168
-
169
- Description: Run a job on specific node or kind of nodes
170
-
171
- Multiple: Override
172
-
173
- Example:
174
-
175
- builder.freestyle 'hello_world-build' do
176
- node 'windows'
177
- end
178
-
179
- **parameter**
180
-
181
- Description: Create parameter for a job
182
-
183
- Multiple: Add
184
-
185
- Example:
186
-
187
- builder.freestyle 'hello_world-check' do
188
- parameter 'GERRIT_BRANCH' do
189
- default 'master'
190
- end
191
- parameter 'GERRIT_REFSPEC' do
192
- default 'refs/heads/${GERRIT_BRANCH}'
193
- end
194
- end
195
-
196
- **password**
197
-
198
- Description: Specify password encrypted by jenkins, that is decrypted when being retrieved via environment variable
199
-
200
- Multiple: Override
201
-
202
- Example:
203
-
204
- builder.freestyle 'hello_world-deploy' do
205
- password 'ADMIN', 'PhxHFCjgSiXR2umXhALLq+RzqJBxODDJT4t9Tw5JXbI='
206
- end
207
-
208
- **password_parameter**
209
-
210
- Description: Create a parameter for password for a job
211
-
212
- Multiple: Add
213
-
214
- Example:
215
-
216
- builder.freestyle 'hello_world-check' do
217
- password_parameter 'PASS' do
218
- default 'xyz#'
219
- end
220
- end
221
-
222
- **pollscm**
223
-
224
- Description: Specify SCM polling frequency in crontab format
225
-
226
- Multiple: Override
227
-
228
- Example:
229
-
230
- builder.freestyle 'hello_world-master' do
231
- pollscm '*/5 * * * *'
232
- end
233
-
234
- **postbuild**
235
-
236
- Description: Create post build actions freestyle/flow
237
-
238
- Multiple: Merged
239
-
240
- Example:
241
-
242
- builder.freestyle 'hello_world-master' do
243
- postbuild do
244
- end
245
- end
246
-
247
- **quiet_period**
248
-
249
- Description: Wait a specified period in seconds before running freestyle/flow
250
-
251
- Multiple: Override
252
-
253
- Example:
254
-
255
- builder.freestyle 'hello_world-build' do
256
- quiet_period 5
257
- end
258
-
259
- **scms**
260
-
261
- Description: Configure multiple SCM's
262
-
263
- Multiple: Override
264
-
265
- Example:
266
-
267
- builder.freestyle 'hello_world-master' do
268
- scms do
269
- git do
270
- end
271
- git do
272
- end
273
- end
274
- end
275
-
276
- **timed**
277
-
278
- Description: Specify frequency to run a build in crontab format freestyle/flow
279
-
280
- Multiple: Override
281
-
282
- Example:
283
-
284
- builder.freestyle 'hello_world-master' do
285
- timed '*/5 * * * *'
286
- end
287
-
288
- **timeout**
289
-
290
- Description: Specify elastic timeout as percentage of last 3 successful builds or absolute value in minutes if they are not available
291
-
292
- Multiple: Override
293
-
294
- Example:
295
-
296
- builder.freestyle 'hello_world-build' do
297
- timeout 'elastic' do
298
- elastic_percentage 200
299
- elastic_default_timeout 30
300
- end
301
- end
302
-
303
- **timestamps**
304
-
305
- Description: Show time stamp for build's console log
306
-
307
- Multiple: Override
308
-
309
- Example:
310
-
311
- builder.freestyle 'hello_world-build' do
312
- timestamps
313
- end
1
+ ## Common vocabulary
2
+
3
+ Common keywords are applicable for both freestyle job and flow job.
4
+
5
+ **artifactory**
6
+
7
+ Description: Deploy artifacts to jfrog artifactory server
8
+
9
+ Multiple: Override
10
+
11
+ Example
12
+
13
+ builder.freestyle 'hello_world-build' do
14
+ artifactory do
15
+ server 'artifactory.acme.com'
16
+ repository 'dev'
17
+ deploy 'hello_world-1.0.$BUILD_NUMBER.zip'
18
+ end
19
+ end
20
+
21
+ **blocked_by**
22
+
23
+ Description: Block build if certain specified jobs are running
24
+
25
+ Multiple: Add
26
+
27
+ Example
28
+
29
+ builder.freestyle 'hello_world-deploy' do
30
+ blocked_by 'hello_world-sevicetest'
31
+ end
32
+
33
+ **Builder**
34
+
35
+ Description: We create builder instance that will be used later to build jobs
36
+
37
+ Multiple: N/A
38
+
39
+ Example
40
+
41
+ require 'rubyjobbuilderdsl'
42
+ builder = JenkinsJob::Builder.new
43
+
44
+ **concurrent**
45
+
46
+ Description: Specify condition for multiple builds of the same job to run concurrently across all nodes of the same category
47
+
48
+ Multiple: Override
49
+
50
+ Example
51
+
52
+ builder.freestyle 'hello_world-servicetest' do
53
+ concurrent do
54
+ max_per_node 1
55
+ max_total 0
56
+ category 'servicetest'
57
+ end
58
+ end
59
+
60
+ **concurrent**
61
+
62
+ Description: Specify condition for multiple builds of the same job to run concurrently across all nodes of the same project
63
+
64
+ Multiple: Override
65
+
66
+ Example
67
+
68
+ builder.freestyle 'hello_world-build' do
69
+ concurrent do
70
+ max_per_node 2
71
+ max_total 0
72
+ end
73
+ end
74
+
75
+ **Deployer**
76
+
77
+ Description: We create deployer instance that will be used to generate/deploy jobs config
78
+
79
+ Multiple: N/A
80
+
81
+ Example
82
+
83
+ require 'rubyjobbuilderdsl'
84
+ check_builder = JenkinsJob::Builder.new
85
+ worker_builder = JenkinsJob::Builder.new
86
+ JenkinsJob::Deployer.new(check_builder, worker_builder).run
87
+
88
+
89
+ **Desc**
90
+
91
+ Description: Specify project's description
92
+
93
+ Multiple: Override
94
+
95
+ Example
96
+
97
+ builder.freestyle 'hello_world-build' do
98
+ desc 'this is a hello world project'
99
+ end
100
+
101
+ **flow**
102
+
103
+ Description: Add Create a flow job
104
+
105
+ Multiple: Add
106
+
107
+ Example
108
+
109
+ builder.flow 'hello_world-check' do
110
+ end
111
+
112
+ **freestyle**
113
+
114
+ Description: Add Create a freestyle job
115
+
116
+ Multiple: Add
117
+
118
+ Example
119
+
120
+ builder.freestyle 'hello_world-build' do
121
+ end
122
+
123
+ **gerrit**
124
+
125
+ Description: trigger the job on Gerrit event
126
+
127
+ Multiple: Override
128
+
129
+ Example
130
+
131
+ builder.flow 'hello_world-post' do
132
+ gerrit do
133
+ end
134
+ end
135
+
136
+
137
+ **git**
138
+
139
+ Description: Configure Git version as SCM
140
+
141
+ Multiple: Override
142
+
143
+ Example:
144
+
145
+ builder.freestyle 'hello_world-master' do
146
+ git do
147
+ end
148
+ end
149
+
150
+ **logrotate**
151
+
152
+ Description: Rotate/discard old builds
153
+
154
+ Multiple: Override
155
+
156
+ Example:
157
+
158
+ builder.freestyle 'hello_world-master' do
159
+ logrotate do
160
+ days_to_keep 14
161
+ num_to_keep -1
162
+ artifact_days_to_keep 2
163
+ artifact_num_to_keep -1
164
+ end
165
+ end
166
+
167
+ **node**
168
+
169
+ Description: Run a job on specific node or kind of nodes
170
+
171
+ Multiple: Override
172
+
173
+ Example:
174
+
175
+ builder.freestyle 'hello_world-build' do
176
+ node 'windows'
177
+ end
178
+
179
+ **parameter**
180
+
181
+ Description: Create parameter for a job
182
+
183
+ Multiple: Add
184
+
185
+ Example:
186
+
187
+ builder.freestyle 'hello_world-check' do
188
+ parameter 'GERRIT_BRANCH' do
189
+ default 'master'
190
+ end
191
+ parameter 'GERRIT_REFSPEC' do
192
+ default 'refs/heads/${GERRIT_BRANCH}'
193
+ end
194
+ end
195
+
196
+ **password**
197
+
198
+ Description: Specify password encrypted by jenkins, that is decrypted when being retrieved via environment variable
199
+
200
+ Multiple: Override
201
+
202
+ Example:
203
+
204
+ builder.freestyle 'hello_world-deploy' do
205
+ password 'ADMIN', 'PhxHFCjgSiXR2umXhALLq+RzqJBxODDJT4t9Tw5JXbI='
206
+ end
207
+
208
+ **password_parameter**
209
+
210
+ Description: Create a parameter for password for a job
211
+
212
+ Multiple: Add
213
+
214
+ Example:
215
+
216
+ builder.freestyle 'hello_world-check' do
217
+ password_parameter 'PASS' do
218
+ default 'xyz#'
219
+ end
220
+ end
221
+
222
+ **pollscm**
223
+
224
+ Description: Specify SCM polling frequency in crontab format
225
+
226
+ Multiple: Override
227
+
228
+ Example:
229
+
230
+ builder.freestyle 'hello_world-master' do
231
+ pollscm '*/5 * * * *'
232
+ end
233
+
234
+ **postbuild**
235
+
236
+ Description: Create post build actions freestyle/flow
237
+
238
+ Multiple: Merged
239
+
240
+ Example:
241
+
242
+ builder.freestyle 'hello_world-master' do
243
+ postbuild do
244
+ end
245
+ end
246
+
247
+ **quiet_period**
248
+
249
+ Description: Wait a specified period in seconds before running freestyle/flow
250
+
251
+ Multiple: Override
252
+
253
+ Example:
254
+
255
+ builder.freestyle 'hello_world-build' do
256
+ quiet_period 5
257
+ end
258
+
259
+ **scms**
260
+
261
+ Description: Configure multiple SCM's
262
+
263
+ Multiple: Override
264
+
265
+ Example:
266
+
267
+ builder.freestyle 'hello_world-master' do
268
+ scms do
269
+ git do
270
+ end
271
+ git do
272
+ end
273
+ end
274
+ end
275
+
276
+ **timed**
277
+
278
+ Description: Specify frequency to run a build in crontab format freestyle/flow
279
+
280
+ Multiple: Override
281
+
282
+ Example:
283
+
284
+ builder.freestyle 'hello_world-master' do
285
+ timed '*/5 * * * *'
286
+ end
287
+
288
+ **timeout**
289
+
290
+ Description: Specify elastic timeout as percentage of last 3 successful builds or absolute value in minutes if they are not available
291
+
292
+ Multiple: Override
293
+
294
+ Example:
295
+
296
+ builder.freestyle 'hello_world-build' do
297
+ timeout 'elastic' do
298
+ elastic_percentage 200
299
+ elastic_default_timeout 30
300
+ end
301
+ end
302
+
303
+ **timestamps**
304
+
305
+ Description: Show time stamp for build's console log
306
+
307
+ Multiple: Override
308
+
309
+ Example:
310
+
311
+ builder.freestyle 'hello_world-build' do
312
+ timestamps
313
+ end