rubyjobbuilderdsl 0.0.6 → 0.0.8

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.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- YmYzOGU5ZjA1NDBhOWFkMjEzMTgwZjUzN2ZmODhkMDJiNGFkZjJhYQ==
5
- data.tar.gz: !binary |-
6
- MzY1ZjdlMDJjNDU3MjY1Nzc5MzI3OTVkMDEzY2Q5Y2NhYjE1NDc2OA==
2
+ SHA1:
3
+ metadata.gz: 5e8710ec979ceb65846d8448c55b6d79dc232b94
4
+ data.tar.gz: 3d5fb68fbbf98552a65d5a76fc96cbb112e99e77
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- OTExNjhkMDUwZjRlMTkzOTRlM2VkMTljMGE5YTA1ZWY0NDljOGZkOTk1NjY4
10
- MWM2NjQ5OGE3YWU2MWJiZWI5ZmQxZjhjYjBlZTI2NjIzNTJiZTIwN2ZlODUx
11
- NWFjNWQxYmQ5ZDVmYmNiODYwZmU0MWY5YzY3ZDlhNGNlYmJiZWE=
12
- data.tar.gz: !binary |-
13
- N2NkNzcwZDg4OGMyNDI0MmNhZmU3OTA5MTdjY2M3ZDdlMDg5NjBmYWYzZDQ0
14
- NzE0MTU4NjdmZGRlNzc2ZTY3NGIzMjczZDg3Y2ExMTFiNDQ5NjcyNWIwZWJk
15
- N2UzYzJlODIzODJmZmM5Yzg5NGE0OTM4ZjM0YzNmMmJlMTk1NmI=
6
+ metadata.gz: 0676550cc2cc2c32651796f10e3ab232a50eefbf2595b3b3f85313193893ff756e40073be7594fb922fe0bb3ee5afd1d763d9072ba948d05afc214a10f0d5e72
7
+ data.tar.gz: 27635431522c0c0a6d193f3c37b90d43cfdd1397caa6fef1af8b94ff411522456cca3aabecee5cc633785a292d5f1bc534ae91ff4dfa0ea3798008cee3673a89
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,5 @@
1
+ # Contributing
2
+
3
+ * Ensure all tests are passing with `run_tests.sh`
4
+ * Update `rubyjobbuilderdsl.gemspec` with version and date
5
+ * Update documentation and/or samples if needed
File without changes
data/docs/index.md CHANGED
@@ -1,12 +1,12 @@
1
- ## Ruby Job Builder DSL
2
-
3
- * [Overview](overview.md)
4
- * [Common](common.md)
5
- * [FreeStyle](freestyle.md)
6
- * [Flow](flow.md)
7
- * [Multi](multi.md)
8
- * [Pipeline](pipeline.md)
9
- * [View](view.md)
10
- * [Gerrit](gerrit.md)
11
- * [Git](git.md)
12
- * [Postbuild](postbuild.md)
1
+ ## Ruby Job Builder DSL
2
+
3
+ * [Overview](overview.md)
4
+ * [Common](common.md)
5
+ * [FreeStyle](freestyle.md)
6
+ * [Flow](flow.md)
7
+ * [Multi](multi.md)
8
+ * [Pipeline](pipeline.md)
9
+ * [View](view.md)
10
+ * [Gerrit](gerrit.md)
11
+ * [Git](git.md)
12
+ * [Postbuild](postbuild.md)
data/docs/pipeline.md CHANGED
@@ -1,26 +1,26 @@
1
- ## Create pipeline style project
2
-
3
- Description: Create a pipeline job which can run a specified groovy script at a particular time
4
-
5
- Example
6
-
7
- builder.pipeline 'Schedule-sample-pipeline' do
8
- schedule '0 15 * * *'
9
- groovy <<EOS
10
-
11
- def date = new Date()
12
- def release = date.format('yyyy.MM.dd')
13
- def releaseManifest = release + ".0400"
14
- println releaseManifest
15
-
16
- build job: 'CreateRelease-gen3',
17
- parameters: [
18
- string(name: 'OctopusServer', value: 'https://OctopusServerSomewhere.com'),
19
- string(name: 'OctopusKey', value: 'An API Key'),
20
- string(name: 'DeploySpecificPackages', value: 'false'),
21
- string(name: 'ReleaseNumber', value: '63'),
22
- string(name: 'ReleaseManifest', value: releaseManifest),
23
- string(name: 'Channel', value: 'Release Channel')]
24
- EOS
25
-
1
+ ## Create pipeline style project
2
+
3
+ Description: Create a pipeline job which can run a specified groovy script at a particular time
4
+
5
+ Example
6
+
7
+ builder.pipeline 'Schedule-sample-pipeline' do
8
+ schedule '0 15 * * *'
9
+ groovy <<EOS
10
+
11
+ def date = new Date()
12
+ def release = date.format('yyyy.MM.dd')
13
+ def releaseManifest = release + ".0400"
14
+ println releaseManifest
15
+
16
+ build job: 'CreateRelease-gen3',
17
+ parameters: [
18
+ string(name: 'OctopusServer', value: 'https://OctopusServerSomewhere.com'),
19
+ string(name: 'OctopusKey', value: 'An API Key'),
20
+ string(name: 'DeploySpecificPackages', value: 'false'),
21
+ string(name: 'ReleaseNumber', value: '63'),
22
+ string(name: 'ReleaseManifest', value: releaseManifest),
23
+ string(name: 'Channel', value: 'Release Channel')]
24
+ EOS
25
+
26
26
  end
data/docs/postbuild.md CHANGED
@@ -263,4 +263,22 @@ Example
263
263
  end
264
264
  end
265
265
 
266
+ **hipchat**
267
+
268
+ Description: Send a hipchat notification
269
+
270
+ Multiple: Override
271
+
272
+ Example
273
+
274
+ builder.freestyle 'hello_world-build' do
275
+ postbuild do
276
+ hipchat do
277
+ token 'apitoken'
278
+ rooms 'room1, room1'
279
+ notify_failure true
280
+ end
281
+ end
282
+ end
283
+
266
284
 
@@ -1,80 +1,80 @@
1
- require_relative 'freestyle'
2
- require_relative 'flow'
3
- require_relative 'pipeline'
4
- require_relative 'multijob'
5
- require_relative 'view'
6
- require_relative 'xml_generator'
7
-
8
- module JenkinsJob
9
- # dsl methods for job builder
10
- class Builder
11
- attr_reader :jobs, :views
12
-
13
- def initialize(&block)
14
- @default_setting = []
15
- @default_setting << block if block_given?
16
- @jobs = {}
17
- @views = {}
18
- end
19
-
20
- def add_extension(&block)
21
- @default_setting << block if block_given?
22
- end
23
-
24
- def freestyle(name, &block)
25
- @jobs[name] = FreeStyle.new(name, self)
26
-
27
- @default_setting.each do |extension|
28
- @jobs[name].instance_eval(&extension)
29
- end
30
-
31
- @jobs[name].instance_eval(&block)
32
- end
33
-
34
- def flow(name, &block)
35
- @jobs[name] = Flow.new(name, self)
36
-
37
- @default_setting.each do |extension|
38
- @jobs[name].instance_eval(&extension)
39
- end
40
-
41
- @jobs[name].instance_eval(&block)
42
- end
43
-
44
- def pipeline(name, &block)
45
- @jobs[name] = Pipeline.new(name, self)
46
-
47
- @default_setting.each do |extension|
48
- @jobs[name].instance_eval(&extension)
49
- end
50
-
51
- @jobs[name].instance_eval(&block)
52
- end
53
-
54
- def multi(name, &block)
55
- @jobs[name] = MultiJob.new(name, self)
56
-
57
- @default_setting.each do |extension|
58
- @jobs[name].instance_eval(&extension)
59
- end
60
-
61
- @jobs[name].instance_eval(&block)
62
- end
63
-
64
- def view(name, &block)
65
- @views[name] = View.new(name, self)
66
- @views[name].instance_eval(&block)
67
- end
68
-
69
- def generate_xml
70
- return unless block_given?
71
- generator = XmlGenerator.new
72
- @jobs.each do |name, job|
73
- yield name, generator.generate(job), :job
74
- end
75
- @views.each do |name, job|
76
- yield name, generator.generate(job), :view
77
- end
78
- end
79
- end
80
- end
1
+ require_relative 'freestyle'
2
+ require_relative 'flow'
3
+ require_relative 'pipeline'
4
+ require_relative 'multijob'
5
+ require_relative 'view'
6
+ require_relative 'xml_generator'
7
+
8
+ module JenkinsJob
9
+ # dsl methods for job builder
10
+ class Builder
11
+ attr_reader :jobs, :views
12
+
13
+ def initialize(&block)
14
+ @default_setting = []
15
+ @default_setting << block if block_given?
16
+ @jobs = {}
17
+ @views = {}
18
+ end
19
+
20
+ def add_extension(&block)
21
+ @default_setting << block if block_given?
22
+ end
23
+
24
+ def freestyle(name, &block)
25
+ @jobs[name] = FreeStyle.new(name, self)
26
+
27
+ @default_setting.each do |extension|
28
+ @jobs[name].instance_eval(&extension)
29
+ end
30
+
31
+ @jobs[name].instance_eval(&block)
32
+ end
33
+
34
+ def flow(name, &block)
35
+ @jobs[name] = Flow.new(name, self)
36
+
37
+ @default_setting.each do |extension|
38
+ @jobs[name].instance_eval(&extension)
39
+ end
40
+
41
+ @jobs[name].instance_eval(&block)
42
+ end
43
+
44
+ def pipeline(name, &block)
45
+ @jobs[name] = Pipeline.new(name, self)
46
+
47
+ @default_setting.each do |extension|
48
+ @jobs[name].instance_eval(&extension)
49
+ end
50
+
51
+ @jobs[name].instance_eval(&block)
52
+ end
53
+
54
+ def multi(name, &block)
55
+ @jobs[name] = MultiJob.new(name, self)
56
+
57
+ @default_setting.each do |extension|
58
+ @jobs[name].instance_eval(&extension)
59
+ end
60
+
61
+ @jobs[name].instance_eval(&block)
62
+ end
63
+
64
+ def view(name, &block)
65
+ @views[name] = View.new(name, self)
66
+ @views[name].instance_eval(&block)
67
+ end
68
+
69
+ def generate_xml
70
+ return unless block_given?
71
+ generator = XmlGenerator.new
72
+ @jobs.each do |name, job|
73
+ yield name, generator.generate(job), :job
74
+ end
75
+ @views.each do |name, job|
76
+ yield name, generator.generate(job), :view
77
+ end
78
+ end
79
+ end
80
+ end
@@ -1,19 +1,18 @@
1
- module JenkinsJob
2
- class Pipeline < Common::Common
3
- attr_reader :name, :groovy_ , :schedule_
4
-
5
- def initialize(name, builder)
6
- super(builder)
7
- @name = name
8
- end
9
-
10
- def groovy(value)
11
- @groovy_ = value
12
- end
13
-
14
- def schedule(value)
15
- @schedule_ = value
16
- end
17
-
18
- end
19
- end
1
+ module JenkinsJob
2
+ class Pipeline < Common::Common
3
+ attr_reader :name, :groovy_, :schedule_
4
+
5
+ def initialize(name, builder)
6
+ super(builder)
7
+ @name = name
8
+ end
9
+
10
+ def groovy(value)
11
+ @groovy_ = value
12
+ end
13
+
14
+ def schedule(value)
15
+ @schedule_ = value
16
+ end
17
+ end
18
+ end
@@ -16,6 +16,7 @@ require_relative 'postbuild/trigger'
16
16
  require_relative 'postbuild/groovy'
17
17
  require_relative 'postbuild/cucumber_json_publisher'
18
18
  require_relative 'postbuild/slack'
19
+ require_relative 'postbuild/hipchat_notifications'
19
20
  require_relative 'buildstep/shell'
20
21
 
21
22
  # dsl methods for job builder
@@ -117,7 +118,7 @@ module JenkinsJob
117
118
  slack = PostbuildSlack.new
118
119
  slack.instance_eval(&block) if block
119
120
  @publishers_['slack'] = slack
120
- end
121
+ end
121
122
 
122
123
  def cucumber_json_publisher(&block)
123
124
  cucumber = CucumberJsonPublisher.new
@@ -155,6 +156,13 @@ module JenkinsJob
155
156
  publisher = ClaimPublisher.new
156
157
  @publishers_['claim-publisher'] = publisher
157
158
  end
159
+
160
+ def hipchat_notifications(&block)
161
+ notifier = HipchatNotifications.new
162
+ notifier.instance_eval(&block) if block
163
+ @publishers_['hipchat_notifications'] = notifier
164
+ end
165
+ alias_method :hipchat, :hipchat_notifications
158
166
  end
159
167
  end
160
168
  end
@@ -0,0 +1,68 @@
1
+ module JenkinsJob
2
+ module Postbuild
3
+ class HipchatNotifications < BasicObject
4
+ attr_reader :token_, :room_, :notify_start_, :notify_success_,
5
+ :notify_aborted_, :notify_not_built_, :notify_unstable_,
6
+ :notify_failure_, :notify_back_to_normal_, :start_message_,
7
+ :complete_message_
8
+
9
+ def initialize
10
+ @token_ = ''
11
+ @room_ = ''
12
+ @notify_start_ = false
13
+ @notify_success_ = false
14
+ @notify_aborted_ = false
15
+ @notify_not_built_ = false
16
+ @notify_unstable_ = false
17
+ @notify_failure_ = false
18
+ @notify_back_to_normal_ = false
19
+ @start_message_ = ''
20
+ @complete_message_ = ''
21
+ end
22
+
23
+ def token(value = '')
24
+ @token_ = value
25
+ end
26
+
27
+ def room(value = '')
28
+ @room_ = value
29
+ end
30
+
31
+ def notify_start(value)
32
+ @notify_start_ = value
33
+ end
34
+
35
+ def notify_success(value)
36
+ @notify_success_ = value
37
+ end
38
+
39
+ def notify_aborted(value)
40
+ @notify_aborted_ = value
41
+ end
42
+
43
+ def notify_not_built(value)
44
+ @notify_not_built_ = value
45
+ end
46
+
47
+ def notify_unstable(value)
48
+ @notify_unstable_ = value
49
+ end
50
+
51
+ def notify_failure(value)
52
+ @notify_failure_ = value
53
+ end
54
+
55
+ def notify_back_to_normal(value)
56
+ @notify_back_to_normal_ = value
57
+ end
58
+
59
+ def start_message(value)
60
+ @start_message_ = value
61
+ end
62
+
63
+ def complete_message(value)
64
+ @complete_message_ = value
65
+ end
66
+ end
67
+ end
68
+ end
@@ -1,77 +1,76 @@
1
- module JenkinsJob
2
- module Postbuild
3
- class PostbuildSlack < BasicObject
4
- attr_reader :base_url_, :auth_token_, :start_notification_, :notify_success_, :notify_aborted_,
5
- :notify_not_built_, :notify_unstable_, :notify_regression_, :notify_failure_,
6
- :notify_back_to_normal_, :notify_repeated_failure_, :include_test_summary_,
7
- :include_failed_tests_
8
-
9
- def initialize
10
- @start_notification_ = false
11
- @notify_success_ = false
12
- @notify_aborted_ = false
13
- @notify_not_built_ = false
14
- @notify_unstable_ = false
15
- @notify_regression_ = false
16
- @notify_failure_ = false
17
- @notify_back_to_normal_ = false
18
- @notify_repeated_failure_ = false
19
- @include_test_summary_ = false
20
- @include_failed_tests_ = false
21
- end
22
-
23
- def base_url(value)
24
- @base_url_ = value
25
- end
26
-
27
- def auth_token(value)
28
- @auth_token_ = value
29
- end
30
-
31
- def start_notification(value = false)
32
- @start_notification_ = value
33
- end
34
-
35
- def notify_success(value = false)
36
- @notify_success_ = value
37
- end
38
-
39
- def notify_aborted(value = false)
40
- @notify_aborted_ = value
41
- end
42
-
43
- def notify_not_built(value = false)
44
- @notify_not_built_ = value
45
- end
46
-
47
- def notify_unstable(value = false)
48
- @notify_unstable_ = value
49
- end
50
-
51
- def notify_regression(value = false)
52
- @notify_regression_ = value
53
- end
54
-
55
- def notify_failure(value = false)
56
- @notify_failure_ = value
57
- end
58
-
59
- def notify_back_to_normal(value = false)
60
- @notify_back_to_normal_ = value
61
- end
62
-
63
- def notify_repeated_failure(value = false)
64
- @notify_repeated_failure_ = value
65
- end
66
-
67
- def include_test_summary(value = false)
68
- @include_test_summary_ = value
69
- end
70
-
71
- def include_failed_tests(value = false)
72
- @include_failed_tests_ = value
73
- end
74
-
75
- end
76
- end
77
- end
1
+ module JenkinsJob
2
+ module Postbuild
3
+ class PostbuildSlack < BasicObject
4
+ attr_reader :base_url_, :auth_token_, :start_notification_, :notify_success_, :notify_aborted_,
5
+ :notify_not_built_, :notify_unstable_, :notify_regression_, :notify_failure_,
6
+ :notify_back_to_normal_, :notify_repeated_failure_, :include_test_summary_,
7
+ :include_failed_tests_
8
+
9
+ def initialize
10
+ @start_notification_ = false
11
+ @notify_success_ = false
12
+ @notify_aborted_ = false
13
+ @notify_not_built_ = false
14
+ @notify_unstable_ = false
15
+ @notify_regression_ = false
16
+ @notify_failure_ = false
17
+ @notify_back_to_normal_ = false
18
+ @notify_repeated_failure_ = false
19
+ @include_test_summary_ = false
20
+ @include_failed_tests_ = false
21
+ end
22
+
23
+ def base_url(value)
24
+ @base_url_ = value
25
+ end
26
+
27
+ def auth_token(value)
28
+ @auth_token_ = value
29
+ end
30
+
31
+ def start_notification(value = false)
32
+ @start_notification_ = value
33
+ end
34
+
35
+ def notify_success(value = false)
36
+ @notify_success_ = value
37
+ end
38
+
39
+ def notify_aborted(value = false)
40
+ @notify_aborted_ = value
41
+ end
42
+
43
+ def notify_not_built(value = false)
44
+ @notify_not_built_ = value
45
+ end
46
+
47
+ def notify_unstable(value = false)
48
+ @notify_unstable_ = value
49
+ end
50
+
51
+ def notify_regression(value = false)
52
+ @notify_regression_ = value
53
+ end
54
+
55
+ def notify_failure(value = false)
56
+ @notify_failure_ = value
57
+ end
58
+
59
+ def notify_back_to_normal(value = false)
60
+ @notify_back_to_normal_ = value
61
+ end
62
+
63
+ def notify_repeated_failure(value = false)
64
+ @notify_repeated_failure_ = value
65
+ end
66
+
67
+ def include_test_summary(value = false)
68
+ @include_test_summary_ = value
69
+ end
70
+
71
+ def include_failed_tests(value = false)
72
+ @include_failed_tests_ = value
73
+ end
74
+ end
75
+ end
76
+ end