rubyjobbuilderdsl 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) 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/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/slack.rb +77 -0
  56. data/lib/rubyjobbuilderdsl/postbuild/tap_publisher.rb +44 -44
  57. data/lib/rubyjobbuilderdsl/postbuild/trigger.rb +38 -38
  58. data/lib/rubyjobbuilderdsl/postbuild/xunit_publisher.rb +35 -35
  59. data/lib/rubyjobbuilderdsl/postbuild.rb +160 -153
  60. data/lib/rubyjobbuilderdsl/view.rb +14 -14
  61. data/lib/rubyjobbuilderdsl/xml_generator.rb +34 -1
  62. data/lib/rubyjobbuilderdsl.rb +2 -2
  63. data/rubyjobbuilderdsl.gemspec +13 -13
  64. data/rubyjobbuilderdsl.sublime-project +14 -14
  65. data/run_tests.sh +7 -7
  66. data/sample/hello_mars.rb +27 -27
  67. data/sample/hello_mars.xml +18 -0
  68. data/sample/hello_world-post.xml +40 -0
  69. data/sample/local.ini +4 -4
  70. data/sample/sample_flow.rb +15 -0
  71. data/sample/sample_slack_postbuild.rb +23 -0
  72. data/sample/test.xml +21 -0
  73. data/test/test_ant.rb +38 -38
  74. data/test/test_archive.rb +24 -24
  75. data/test/test_artifactory.rb +26 -26
  76. data/test/test_blocking_job.rb +18 -18
  77. data/test/test_chucknorris_publisher.rb +17 -17
  78. data/test/test_claim_publisher.rb +17 -17
  79. data/test/test_cloverphp.rb +33 -33
  80. data/test/test_concurrent.rb +44 -44
  81. data/test/test_copyartifact.rb +45 -45
  82. data/test/test_cucumber_json_publisher.rb +30 -30
  83. data/test/test_default_setting.rb +29 -29
  84. data/test/test_email_publisher.rb +44 -44
  85. data/test/test_flow.rb +19 -19
  86. data/test/test_freestyle.rb +52 -52
  87. data/test/test_game_publisher.rb +17 -17
  88. data/test/test_gerrit.rb +117 -117
  89. data/test/test_git.rb +80 -80
  90. data/test/test_html_publisher.rb +57 -57
  91. data/test/test_inject.rb +23 -23
  92. data/test/test_javadoc.rb +22 -22
  93. data/test/test_logparser.rb +24 -24
  94. data/test/test_logrotate.rb +22 -22
  95. data/test/test_multijob.rb +50 -50
  96. data/test/test_nunit_publisher.rb +20 -20
  97. data/test/test_parameter.rb +44 -44
  98. data/test/test_password.rb +17 -17
  99. data/test/test_pmd.rb +22 -22
  100. data/test/test_pollscm.rb +15 -15
  101. data/test/test_postbuild_groovy.rb +21 -21
  102. data/test/test_postbuild_script.rb +24 -24
  103. data/test/test_postbuild_trigger.rb +170 -170
  104. data/test/test_scms.rb +31 -31
  105. data/test/test_tap_publisher.rb +25 -25
  106. data/test/test_timed.rb +15 -15
  107. data/test/test_timeout.rb +20 -20
  108. data/test/test_timestamps.rb +14 -14
  109. data/test/test_xml_generator.rb +28 -28
  110. data/test/test_xunit_publisher.rb +22 -22
  111. data/test/test_xvfb.rb +35 -35
  112. metadata +15 -10
  113. data/sample/Schedule-sample-pipeline.xml +0 -28
@@ -1,153 +1,160 @@
1
- require_relative 'postbuild/archive'
2
- require_relative 'postbuild/logparser'
3
- require_relative 'postbuild/html_publisher'
4
- require_relative 'postbuild/email_publisher'
5
- require_relative 'postbuild/nunit_publisher'
6
- require_relative 'postbuild/xunit_publisher'
7
- require_relative 'postbuild/cloverphp_publisher'
8
- require_relative 'postbuild/javadoc_publisher'
9
- require_relative 'postbuild/pmd_publisher'
10
- require_relative 'postbuild/claim_publisher'
11
- require_relative 'postbuild/tap_publisher'
12
- require_relative 'postbuild/chucknorris_publisher'
13
- require_relative 'postbuild/game_publisher'
14
- require_relative 'postbuild/script'
15
- require_relative 'postbuild/trigger'
16
- require_relative 'postbuild/groovy'
17
- require_relative 'postbuild/cucumber_json_publisher'
18
- require_relative 'buildstep/shell'
19
-
20
- # dsl methods for job builder
21
- module JenkinsJob
22
- module Postbuild
23
- class Postbuild < BasicObject
24
- attr_reader :job, :publishers_
25
-
26
- def initialize(job)
27
- @job = job
28
- @publishers_ = {}
29
- end
30
-
31
- def archive(&block)
32
- # sandbox for archive dsl
33
- archive = Archive.new
34
- archive.instance_eval(&block)
35
-
36
- @publishers_['archive'] = archive
37
- end
38
-
39
- def publish_html(name, &block)
40
- # sandbox for html publisher dsl
41
- publisher = HtmlPublisher.new(name)
42
- publisher.instance_eval(&block)
43
-
44
- @publishers_['publish_html'] ||= []
45
- @publishers_['publish_html'] << publisher
46
- end
47
-
48
- def send_email(recipients, &block)
49
- publisher = EmailPublisher.new(recipients)
50
- publisher.instance_eval(&block) if block
51
-
52
- @publishers_['send_email'] = publisher
53
- end
54
-
55
- def publish_nunit_report(test_results_pattern, &block)
56
- publisher = NUnitPublisher.new(test_results_pattern)
57
- publisher.instance_eval(&block) if block
58
-
59
- @publishers_['publish_nunit_report'] = publisher
60
- end
61
-
62
- def publish_xunit_report(test_results_pattern, &block)
63
- publisher = XUnitPublisher.new(test_results_pattern)
64
- publisher.instance_eval(&block) if block
65
-
66
- @publishers_['publish_xunit_report'] = publisher
67
- end
68
-
69
- def publish_tap(test_results, &block)
70
- publisher = TapPublisher.new(test_results)
71
- publisher.instance_eval(&block) if block
72
-
73
- @publishers_['publish_tap'] = publisher
74
- end
75
-
76
- def logparser(rule_file, &block)
77
- # sandbox for html publisher dsl
78
- logparser = LogParser.new(rule_file)
79
- logparser.instance_eval(&block) if block
80
-
81
- @publishers_['logparser'] = logparser
82
- end
83
-
84
- def shell(value)
85
- @publishers_['postbuildscript'] ||= PostbuildScript.new
86
- @publishers_['postbuildscript'].add(::JenkinsJob::BuildStep::Shell.new(value))
87
- end
88
-
89
- def batch(value)
90
- @publishers_['postbuildscript'] ||= PostbuildScript.new
91
- @publishers_['postbuildscript'].add(::JenkinsJob::BuildStep::Batch.new(value))
92
- end
93
-
94
- def powershell(value)
95
- @publishers_['postbuildscript'] ||= PostbuildScript.new
96
- @publishers_['postbuildscript'].add(::JenkinsJob::BuildStep::Powershell.new(value))
97
- end
98
-
99
- def trigger(*project, &block)
100
- trigger = PostbuildTrigger.new(project)
101
- trigger.instance_eval(&block) if block
102
- @publishers_['trigger-parameterized-builds'] = trigger
103
- end
104
-
105
- def groovy(value)
106
- @publishers_['groovy'] = PostbuildGroovy.new(value)
107
- end
108
-
109
- def publish_cloverphp(&block)
110
- clover = CloverPhpPublisher.new
111
- clover.instance_eval(&block) if block
112
- @publishers_['clover-php'] = clover
113
- end
114
-
115
- def cucumber_json_publisher(&block)
116
- cucumber = CucumberJsonPublisher.new
117
- cucumber.instance_eval(&block) if block
118
- @publishers_['cucumber'] = cucumber
119
- end
120
-
121
- def publish_javadoc(&block)
122
- doc = JavaDocPublisher.new
123
- doc.instance_eval(&block) if block
124
- @publishers_['java-doc'] = doc
125
- end
126
-
127
- def publish_pmd(&block)
128
- pmd = PMDPublisher.new
129
- pmd.instance_eval(&block) if block
130
- @publishers_['pmd'] = pmd
131
- end
132
-
133
- def publish_chucknorris(&block)
134
- chucknorris = ChuckNorrisPublisher.new
135
- chucknorris.instance_eval(&block) if block
136
- @publishers_['chucknorris'] = chucknorris
137
- end
138
- alias_method :chucknorris, :publish_chucknorris
139
-
140
- def publish_game(&block)
141
- game = GamePublisher.new
142
- game.instance_eval(&block) if block
143
- @publishers_['game'] = game
144
- end
145
- alias_method :game, :publish_game
146
-
147
- def allow_broken_build_claiming
148
- publisher = ClaimPublisher.new
149
- @publishers_['claim-publisher'] = publisher
150
- end
151
- end
152
- end
153
- end
1
+ require_relative 'postbuild/archive'
2
+ require_relative 'postbuild/logparser'
3
+ require_relative 'postbuild/html_publisher'
4
+ require_relative 'postbuild/email_publisher'
5
+ require_relative 'postbuild/nunit_publisher'
6
+ require_relative 'postbuild/xunit_publisher'
7
+ require_relative 'postbuild/cloverphp_publisher'
8
+ require_relative 'postbuild/javadoc_publisher'
9
+ require_relative 'postbuild/pmd_publisher'
10
+ require_relative 'postbuild/claim_publisher'
11
+ require_relative 'postbuild/tap_publisher'
12
+ require_relative 'postbuild/chucknorris_publisher'
13
+ require_relative 'postbuild/game_publisher'
14
+ require_relative 'postbuild/script'
15
+ require_relative 'postbuild/trigger'
16
+ require_relative 'postbuild/groovy'
17
+ require_relative 'postbuild/cucumber_json_publisher'
18
+ require_relative 'postbuild/slack'
19
+ require_relative 'buildstep/shell'
20
+
21
+ # dsl methods for job builder
22
+ module JenkinsJob
23
+ module Postbuild
24
+ class Postbuild < BasicObject
25
+ attr_reader :job, :publishers_
26
+
27
+ def initialize(job)
28
+ @job = job
29
+ @publishers_ = {}
30
+ end
31
+
32
+ def archive(&block)
33
+ # sandbox for archive dsl
34
+ archive = Archive.new
35
+ archive.instance_eval(&block)
36
+
37
+ @publishers_['archive'] = archive
38
+ end
39
+
40
+ def publish_html(name, &block)
41
+ # sandbox for html publisher dsl
42
+ publisher = HtmlPublisher.new(name)
43
+ publisher.instance_eval(&block)
44
+
45
+ @publishers_['publish_html'] ||= []
46
+ @publishers_['publish_html'] << publisher
47
+ end
48
+
49
+ def send_email(recipients, &block)
50
+ publisher = EmailPublisher.new(recipients)
51
+ publisher.instance_eval(&block) if block
52
+
53
+ @publishers_['send_email'] = publisher
54
+ end
55
+
56
+ def publish_nunit_report(test_results_pattern, &block)
57
+ publisher = NUnitPublisher.new(test_results_pattern)
58
+ publisher.instance_eval(&block) if block
59
+
60
+ @publishers_['publish_nunit_report'] = publisher
61
+ end
62
+
63
+ def publish_xunit_report(test_results_pattern, &block)
64
+ publisher = XUnitPublisher.new(test_results_pattern)
65
+ publisher.instance_eval(&block) if block
66
+
67
+ @publishers_['publish_xunit_report'] = publisher
68
+ end
69
+
70
+ def publish_tap(test_results, &block)
71
+ publisher = TapPublisher.new(test_results)
72
+ publisher.instance_eval(&block) if block
73
+
74
+ @publishers_['publish_tap'] = publisher
75
+ end
76
+
77
+ def logparser(rule_file, &block)
78
+ # sandbox for html publisher dsl
79
+ logparser = LogParser.new(rule_file)
80
+ logparser.instance_eval(&block) if block
81
+
82
+ @publishers_['logparser'] = logparser
83
+ end
84
+
85
+ def shell(value)
86
+ @publishers_['postbuildscript'] ||= PostbuildScript.new
87
+ @publishers_['postbuildscript'].add(::JenkinsJob::BuildStep::Shell.new(value))
88
+ end
89
+
90
+ def batch(value)
91
+ @publishers_['postbuildscript'] ||= PostbuildScript.new
92
+ @publishers_['postbuildscript'].add(::JenkinsJob::BuildStep::Batch.new(value))
93
+ end
94
+
95
+ def powershell(value)
96
+ @publishers_['postbuildscript'] ||= PostbuildScript.new
97
+ @publishers_['postbuildscript'].add(::JenkinsJob::BuildStep::Powershell.new(value))
98
+ end
99
+
100
+ def trigger(*project, &block)
101
+ trigger = PostbuildTrigger.new(project)
102
+ trigger.instance_eval(&block) if block
103
+ @publishers_['trigger-parameterized-builds'] = trigger
104
+ end
105
+
106
+ def groovy(value)
107
+ @publishers_['groovy'] = PostbuildGroovy.new(value)
108
+ end
109
+
110
+ def publish_cloverphp(&block)
111
+ clover = CloverPhpPublisher.new
112
+ clover.instance_eval(&block) if block
113
+ @publishers_['clover-php'] = clover
114
+ end
115
+
116
+ def publish_slack(&block)
117
+ slack = PostbuildSlack.new
118
+ slack.instance_eval(&block) if block
119
+ @publishers_['slack'] = slack
120
+ end
121
+
122
+ def cucumber_json_publisher(&block)
123
+ cucumber = CucumberJsonPublisher.new
124
+ cucumber.instance_eval(&block) if block
125
+ @publishers_['cucumber'] = cucumber
126
+ end
127
+
128
+ def publish_javadoc(&block)
129
+ doc = JavaDocPublisher.new
130
+ doc.instance_eval(&block) if block
131
+ @publishers_['java-doc'] = doc
132
+ end
133
+
134
+ def publish_pmd(&block)
135
+ pmd = PMDPublisher.new
136
+ pmd.instance_eval(&block) if block
137
+ @publishers_['pmd'] = pmd
138
+ end
139
+
140
+ def publish_chucknorris(&block)
141
+ chucknorris = ChuckNorrisPublisher.new
142
+ chucknorris.instance_eval(&block) if block
143
+ @publishers_['chucknorris'] = chucknorris
144
+ end
145
+ alias_method :chucknorris, :publish_chucknorris
146
+
147
+ def publish_game(&block)
148
+ game = GamePublisher.new
149
+ game.instance_eval(&block) if block
150
+ @publishers_['game'] = game
151
+ end
152
+ alias_method :game, :publish_game
153
+
154
+ def allow_broken_build_claiming
155
+ publisher = ClaimPublisher.new
156
+ @publishers_['claim-publisher'] = publisher
157
+ end
158
+ end
159
+ end
160
+ end
@@ -1,14 +1,14 @@
1
- module JenkinsJob
2
- class View
3
- attr_reader :name, :jobname_
4
-
5
- def initialize(name, builder)
6
- @builder = builder
7
- @name = name
8
- end
9
-
10
- def job(regex)
11
- @jobname_ = regex
12
- end
13
- end
14
- end
1
+ module JenkinsJob
2
+ class View
3
+ attr_reader :name, :jobname_
4
+
5
+ def initialize(name, builder)
6
+ @builder = builder
7
+ @name = name
8
+ end
9
+
10
+ def job(regex)
11
+ @jobname_ = regex
12
+ end
13
+ end
14
+ end
@@ -55,6 +55,7 @@ module JenkinsJob
55
55
  Postbuild::TapPublisher => lambda { |generator, model, xml_node| generator.generate_tap_publisher(model, xml_node) },
56
56
  Postbuild::GamePublisher => lambda { |generator, model, xml_node| generator.generate_game_publisher(model, xml_node) },
57
57
  Postbuild::ChuckNorrisPublisher => lambda { |generator, model, xml_node| generator.generate_chucknorris_publisher(model, xml_node) },
58
+ Postbuild::PostbuildSlack => lambda { |generator, model, xml_node| generator.generate_postbuild_slack(model, xml_node) },
58
59
  }
59
60
 
60
61
  def generate(model, xml_node = ::Builder::XmlMarkup.new(:indent => 2))
@@ -179,7 +180,14 @@ module JenkinsJob
179
180
  definition.script(model.groovy_)
180
181
  end
181
182
  project.disabled(false)
182
- end
183
+ if model.postbuild_
184
+ project.publishers do |publishers|
185
+ generate(model.postbuild_, publishers)
186
+ end
187
+ else
188
+ project.publishers
189
+ end
190
+ end
183
191
  result
184
192
  end
185
193
 
@@ -733,6 +741,31 @@ module JenkinsJob
733
741
  end
734
742
  end
735
743
 
744
+ def generate_postbuild_slack(model, publishers)
745
+ publishers.tag!('jenkins.plugins.slack.SlackNotifier', :plugin => 'slack@2.3' ) do |slack|
746
+ slack.baseUrl(model.base_url_)
747
+ slack.teamDomain
748
+ slack.authToken(model.auth_token_)
749
+ slack.authTokenCredentialId
750
+ slack.botUser(false)
751
+ slack.room
752
+ slack.startNotification(model.start_notification_)
753
+ slack.notifySuccess(model.notify_success_)
754
+ slack.notifyAborted(model.notify_aborted_)
755
+ slack.notifyNotBuilt(model.notify_not_built_)
756
+ slack.notifyUnstable(model.notify_unstable_)
757
+ slack.notifyRegression(model.notify_regression_)
758
+ slack.notifyFailure(model.notify_failure_)
759
+ slack.notifyBackToNormal(model.notify_back_to_normal_)
760
+ slack.notifyRepeatedFailure(model.notify_repeated_failure_)
761
+ slack.includeTestSummary(model.include_test_summary)
762
+ slack.includeFailedTests(model.include_failed_tests_)
763
+ slack.commitInfoChoice('NONE')
764
+ slack.includeCustomMessage(false)
765
+ slack.CustomMessage
766
+ end
767
+ end
768
+
736
769
  def generate_postbuild_groovy(model, publishers)
737
770
  publishers.tag!('org.jvnet.hudson.plugins.groovypostbuild.GroovyPostbuildRecorder') do |recorder|
738
771
  recorder.groovyScript(model.value_)
@@ -1,2 +1,2 @@
1
- require_relative './rubyjobbuilderdsl/builder'
2
- require_relative './rubyjobbuilderdsl/deployer'
1
+ require_relative './rubyjobbuilderdsl/builder'
2
+ require_relative './rubyjobbuilderdsl/deployer'
@@ -1,13 +1,13 @@
1
- Gem::Specification.new do |s|
2
- s.name = 'rubyjobbuilderdsl'
3
- s.version = '0.0.3'
4
- s.date = '2017-10-13'
5
- s.summary = 'Ruby Internal DSL for creating Jenkins jobs'
6
- s.description = 'Ruby Internal DSL for creating Jenkins jobs'
7
- s.authors = ['Huy Le']
8
- s.email = 'lehuy20@gmail.com'
9
- s.files = Dir['**/*']
10
- s.license = 'MIT'
11
- s.add_runtime_dependency 'nokogiri'
12
- s.add_runtime_dependency 'builder'
13
- end
1
+ Gem::Specification.new do |s|
2
+ s.name = 'rubyjobbuilderdsl'
3
+ s.version = '0.0.4'
4
+ s.date = '2017-10-16'
5
+ s.summary = 'Ruby Internal DSL for creating Jenkins jobs'
6
+ s.description = 'Ruby Internal DSL for creating Jenkins jobs'
7
+ s.authors = ['Huy Le']
8
+ s.email = 'lehuy20@gmail.com'
9
+ s.files = Dir['**/*']
10
+ s.license = 'MIT'
11
+ s.add_runtime_dependency 'nokogiri'
12
+ s.add_runtime_dependency 'builder'
13
+ end
@@ -1,14 +1,14 @@
1
- {
2
- "folders":
3
- [
4
- {
5
- "path": ".",
6
- "folder_exclude_patterns": [".bundle", "vendor"]
7
- }
8
- ],
9
- "settings":
10
- {
11
- "tab_size": 2,
12
- "translate_tabs_to_spaces": true
13
- }
14
- }
1
+ {
2
+ "folders":
3
+ [
4
+ {
5
+ "path": ".",
6
+ "folder_exclude_patterns": [".bundle", "vendor"]
7
+ }
8
+ ],
9
+ "settings":
10
+ {
11
+ "tab_size": 2,
12
+ "translate_tabs_to_spaces": true
13
+ }
14
+ }
data/run_tests.sh CHANGED
@@ -1,7 +1,7 @@
1
- #!/bin/sh
2
-
3
- set -ex
4
-
5
- bundle install --deployment
6
-
7
- bundle exec rake
1
+ #!/bin/sh
2
+
3
+ set -ex
4
+
5
+ bundle install --deployment
6
+
7
+ bundle exec rake
data/sample/hello_mars.rb CHANGED
@@ -1,27 +1,27 @@
1
- require_relative '../lib/rubyjobbuilderdsl'
2
-
3
- builder = JenkinsJob::Builder.new
4
-
5
- builder.freestyle 'hello_mars' do
6
- shell 'echo hello mars > hello_mars-1.0.$BUILD_NUMBER.txt && gzip hello_mars-1.0.$BUILD_NUMBER.txt'
7
- end
8
-
9
- builder.view 'test' do
10
- job 'test-.*'
11
- end
12
-
13
- JenkinsJob::Deployer.new(builder).run do
14
- disable_job 'hello_mars'
15
- wipeout_workspace 'hello_mars'
16
- delete_job 'hello_mars'
17
- delete_view 'test'
18
-
19
- each do |name, xml, type|
20
- upload_view(name, xml) if type == :view
21
- upload_job(name, xml) if type == :job
22
- end
23
-
24
- groovysh 'println "hello world"'
25
- enable_job 'hello_mars'
26
- trigger_job 'hello_mars'
27
- end
1
+ require_relative '../lib/rubyjobbuilderdsl'
2
+
3
+ builder = JenkinsJob::Builder.new
4
+
5
+ builder.freestyle 'hello_mars' do
6
+ shell 'echo hello mars > hello_mars-1.0.$BUILD_NUMBER.txt && gzip hello_mars-1.0.$BUILD_NUMBER.txt'
7
+ end
8
+
9
+ builder.view 'test' do
10
+ job 'test-.*'
11
+ end
12
+
13
+ JenkinsJob::Deployer.new(builder).run do
14
+ disable_job 'hello_mars'
15
+ wipeout_workspace 'hello_mars'
16
+ delete_job 'hello_mars'
17
+ delete_view 'test'
18
+
19
+ each do |name, xml, type|
20
+ upload_view(name, xml) if type == :view
21
+ upload_job(name, xml) if type == :job
22
+ end
23
+
24
+ groovysh 'println "hello world"'
25
+ enable_job 'hello_mars'
26
+ trigger_job 'hello_mars'
27
+ end
@@ -0,0 +1,18 @@
1
+ <project>
2
+ <actions/>
3
+ <description>&lt;!-- Managed by Jenkins Job Builder --&gt;</description>
4
+ <keepDependencies>false</keepDependencies>
5
+ <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
6
+ <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
7
+ <concurrentBuild>false</concurrentBuild>
8
+ <canRoam>true</canRoam>
9
+ <properties/>
10
+ <scm class="hudson.scm.NullSCM"/>
11
+ <publishers/>
12
+ <buildWrappers/>
13
+ <builders>
14
+ <hudson.tasks.Shell>
15
+ <command>echo hello mars &gt; hello_mars-1.0.$BUILD_NUMBER.txt &amp;&amp; gzip hello_mars-1.0.$BUILD_NUMBER.txt</command>
16
+ </hudson.tasks.Shell>
17
+ </builders>
18
+ </project>
@@ -0,0 +1,40 @@
1
+ <flow-definition plugin="workflow-job@2.11">
2
+ <actions/>
3
+ <description/>
4
+ <keepDependencies>false</keepDependencies>
5
+ <properties>
6
+ <org.jenkinsci.plugins.workflow.job.properties.PipelineTriggersJobProperty>
7
+ <triggers/>
8
+ </org.jenkinsci.plugins.workflow.job.properties.PipelineTriggersJobProperty>
9
+ </properties>
10
+ <definition class="org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition" plugin="workflow-cps@2.32">
11
+ <script>build("hello_world",
12
+ SOME_PARAM: "A_param_value")
13
+ </script>
14
+ </definition>
15
+ <disabled>false</disabled>
16
+ <publishers>
17
+ <jenkins.plugins.slack.SlackNotifier plugin="slack@2.3">
18
+ <baseUrl>This is base url</baseUrl>
19
+ <teamDomain/>
20
+ <authToken>This is an auth_token</authToken>
21
+ <authTokenCredentialId/>
22
+ <botUser>false</botUser>
23
+ <room/>
24
+ <startNotification>true</startNotification>
25
+ <notifySuccess>true</notifySuccess>
26
+ <notifyAborted>true</notifyAborted>
27
+ <notifyNotBuilt>false</notifyNotBuilt>
28
+ <notifyUnstable>false</notifyUnstable>
29
+ <notifyRegression>false</notifyRegression>
30
+ <notifyFailure>true</notifyFailure>
31
+ <notifyBackToNormal>false</notifyBackToNormal>
32
+ <notifyRepeatedFailure>false</notifyRepeatedFailure>
33
+ <includeTestSummary>false</includeTestSummary>
34
+ <includeFailedTests>false</includeFailedTests>
35
+ <commitInfoChoice>NONE</commitInfoChoice>
36
+ <includeCustomMessage>false</includeCustomMessage>
37
+ <CustomMessage/>
38
+ </jenkins.plugins.slack.SlackNotifier>
39
+ </publishers>
40
+ </flow-definition>
data/sample/local.ini CHANGED
@@ -1,4 +1,4 @@
1
- [jenkins]
2
- url=http://localhost:8080/
3
- user=jenkins-jobs
4
- password=7bb352e4f3da683c17247f3abf88f47c
1
+ [jenkins]
2
+ url=http://localhost:8080/
3
+ user=jenkins-jobs
4
+ password=7bb352e4f3da683c17247f3abf88f47c
@@ -0,0 +1,15 @@
1
+ require_relative '../lib/rubyjobbuilderdsl'
2
+
3
+ builder = JenkinsJob::Builder.new
4
+
5
+ builder.pipeline 'hello_world-post' do
6
+ #timed '0 4 * * 1-5'
7
+ # definition <<EOS
8
+ #build("hello_worl-" + params["GERRIT_BRANCH"],
9
+ # GERRIT_REFSPEC: "refs/heads/${params["GERRIT_BRANCH"]}",
10
+ # GERRIT_BRANCH: params["GERRIT_BRANCH"])
11
+ #EOS
12
+
13
+ end
14
+
15
+ JenkinsJob::Deployer.new(builder).run
@@ -0,0 +1,23 @@
1
+ require_relative '../lib/rubyjobbuilderdsl'
2
+
3
+ builder = JenkinsJob::Builder.new
4
+
5
+ builder.pipeline 'hello_world-post' do
6
+ timed '0 4 * * 1-5'
7
+ postbuild do
8
+ publish_slack do
9
+ base_url 'This is base url'
10
+ auth_token 'This is an auth_token'
11
+ start_notification true
12
+ notify_success true
13
+ notify_aborted true
14
+ notify_failure true
15
+ end
16
+ end
17
+ groovy <<EOS
18
+ build("hello_world",
19
+ SOME_PARAM: "A_param_value")
20
+ EOS
21
+ end
22
+
23
+ JenkinsJob::Deployer.new(builder).run