rubyjobbuilderdsl 0.0.6 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
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