akqa-jenkins 0.6.4.1

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 (106) hide show
  1. data/.gitignore +8 -0
  2. data/Changelog.md +54 -0
  3. data/Gemfile +3 -0
  4. data/Gemfile.lock +56 -0
  5. data/README.md +159 -0
  6. data/Rakefile +82 -0
  7. data/bin/jenkins +11 -0
  8. data/cucumber.yml +8 -0
  9. data/features/build_details.feature +42 -0
  10. data/features/configure.feature +36 -0
  11. data/features/default_host.feature +26 -0
  12. data/features/development.feature +14 -0
  13. data/features/launch_server.feature +16 -0
  14. data/features/listing_jobs.feature +34 -0
  15. data/features/manage_jobs.feature +214 -0
  16. data/features/manage_slave_nodes.feature +82 -0
  17. data/features/step_definitions/common_steps.rb +192 -0
  18. data/features/step_definitions/fixture_project_steps.rb +8 -0
  19. data/features/step_definitions/jenkins_steps.rb +116 -0
  20. data/features/step_definitions/scm_steps.rb +12 -0
  21. data/features/support/common.rb +37 -0
  22. data/features/support/env.rb +19 -0
  23. data/features/support/hooks.rb +16 -0
  24. data/features/support/jenkins_helpers.rb +6 -0
  25. data/features/support/matchers.rb +10 -0
  26. data/fixtures/jenkins/envfile.hpi +0 -0
  27. data/fixtures/jenkins/git.hpi +0 -0
  28. data/fixtures/jenkins/github.hpi +0 -0
  29. data/fixtures/jenkins/greenballs.hpi +0 -0
  30. data/fixtures/jenkins/rake.hpi +0 -0
  31. data/fixtures/jenkins/ruby.hpi +0 -0
  32. data/fixtures/projects/erlang/rebar.config +1 -0
  33. data/fixtures/projects/non-bundler/Rakefile +4 -0
  34. data/fixtures/projects/rails-3/.gitignore +4 -0
  35. data/fixtures/projects/rails-3/Gemfile +30 -0
  36. data/fixtures/projects/rails-3/Gemfile.lock +74 -0
  37. data/fixtures/projects/rails-3/README +256 -0
  38. data/fixtures/projects/rails-3/Rakefile +7 -0
  39. data/fixtures/projects/rails-3/app/controllers/application_controller.rb +3 -0
  40. data/fixtures/projects/rails-3/app/helpers/application_helper.rb +2 -0
  41. data/fixtures/projects/rails-3/app/views/layouts/application.html.erb +14 -0
  42. data/fixtures/projects/rails-3/config.ru +4 -0
  43. data/fixtures/projects/rails-3/config/application.rb +42 -0
  44. data/fixtures/projects/rails-3/config/boot.rb +13 -0
  45. data/fixtures/projects/rails-3/config/database.yml +22 -0
  46. data/fixtures/projects/rails-3/config/environment.rb +5 -0
  47. data/fixtures/projects/rails-3/config/environments/development.rb +26 -0
  48. data/fixtures/projects/rails-3/config/environments/production.rb +49 -0
  49. data/fixtures/projects/rails-3/config/environments/test.rb +35 -0
  50. data/fixtures/projects/rails-3/config/initializers/backtrace_silencers.rb +7 -0
  51. data/fixtures/projects/rails-3/config/initializers/inflections.rb +10 -0
  52. data/fixtures/projects/rails-3/config/initializers/mime_types.rb +5 -0
  53. data/fixtures/projects/rails-3/config/initializers/secret_token.rb +7 -0
  54. data/fixtures/projects/rails-3/config/initializers/session_store.rb +8 -0
  55. data/fixtures/projects/rails-3/config/locales/en.yml +5 -0
  56. data/fixtures/projects/rails-3/config/routes.rb +58 -0
  57. data/fixtures/projects/rails-3/db/seeds.rb +7 -0
  58. data/fixtures/projects/rails-3/doc/README_FOR_APP +2 -0
  59. data/fixtures/projects/rails-3/lib/tasks/.gitkeep +0 -0
  60. data/fixtures/projects/rails-3/public/404.html +26 -0
  61. data/fixtures/projects/rails-3/public/422.html +26 -0
  62. data/fixtures/projects/rails-3/public/500.html +26 -0
  63. data/fixtures/projects/rails-3/public/favicon.ico +0 -0
  64. data/fixtures/projects/rails-3/public/images/rails.png +0 -0
  65. data/fixtures/projects/rails-3/public/index.html +239 -0
  66. data/fixtures/projects/rails-3/public/javascripts/application.js +2 -0
  67. data/fixtures/projects/rails-3/public/javascripts/controls.js +965 -0
  68. data/fixtures/projects/rails-3/public/javascripts/dragdrop.js +974 -0
  69. data/fixtures/projects/rails-3/public/javascripts/effects.js +1123 -0
  70. data/fixtures/projects/rails-3/public/javascripts/prototype.js +6001 -0
  71. data/fixtures/projects/rails-3/public/javascripts/rails.js +175 -0
  72. data/fixtures/projects/rails-3/public/robots.txt +5 -0
  73. data/fixtures/projects/rails-3/public/stylesheets/.gitkeep +0 -0
  74. data/fixtures/projects/rails-3/script/rails +6 -0
  75. data/fixtures/projects/rails-3/test/performance/browsing_test.rb +9 -0
  76. data/fixtures/projects/rails-3/test/test_helper.rb +13 -0
  77. data/fixtures/projects/rails-3/vendor/plugins/.gitkeep +0 -0
  78. data/fixtures/projects/ruby/Gemfile +3 -0
  79. data/fixtures/projects/ruby/Gemfile.lock +10 -0
  80. data/fixtures/projects/ruby/Rakefile +4 -0
  81. data/jenkins.gemspec +33 -0
  82. data/lib/jenkins.rb +6 -0
  83. data/lib/jenkins/api.rb +250 -0
  84. data/lib/jenkins/cli.rb +291 -0
  85. data/lib/jenkins/cli/formatting.rb +53 -0
  86. data/lib/jenkins/config.rb +27 -0
  87. data/lib/jenkins/core_ext/hash.rb +9 -0
  88. data/lib/jenkins/core_ext/object/blank.rb +77 -0
  89. data/lib/jenkins/hudson-cli.jar +0 -0
  90. data/lib/jenkins/job_config_builder.rb +292 -0
  91. data/lib/jenkins/project_scm.rb +22 -0
  92. data/lib/jenkins/remote.rb +11 -0
  93. data/lib/jenkins/version.rb +3 -0
  94. data/spec/fixtures/ec2_global.config.xml +103 -0
  95. data/spec/fixtures/erlang.single.config.xml +59 -0
  96. data/spec/fixtures/rails.multi.config.xml +82 -0
  97. data/spec/fixtures/rails.single.config.triggers.xml +84 -0
  98. data/spec/fixtures/rails.single.config.xml +80 -0
  99. data/spec/fixtures/ruby.multi-ruby-multi-labels.config.xml +84 -0
  100. data/spec/fixtures/ruby.multi.config.xml +77 -0
  101. data/spec/fixtures/ruby.single.config.xml +58 -0
  102. data/spec/fixtures/therubyracer.config.xml +77 -0
  103. data/spec/hash_key_cleaner_spec.rb +25 -0
  104. data/spec/job_config_builder_spec.rb +150 -0
  105. data/spec/spec_helper.rb +15 -0
  106. metadata +283 -0
@@ -0,0 +1,292 @@
1
+ require "builder"
2
+
3
+ module Jenkins
4
+ class JobConfigBuilder
5
+ attr_accessor :job_type
6
+ attr_accessor :steps, :rubies
7
+ attr_accessor :scm, :public_scm, :scm_branches
8
+ attr_accessor :scm, :public_scm, :git_branches
9
+ attr_accessor :assigned_node, :node_labels # TODO just one of these
10
+ attr_accessor :envfile
11
+
12
+ InvalidTemplate = Class.new(StandardError)
13
+
14
+ VALID_JOB_TEMPLATES = %w[none rails rails3 ruby rubygem erlang]
15
+
16
+ # +job_type+ - template of default steps to create with the job
17
+ # +steps+ - array of [:method, cmd], e.g. [:build_shell_step, "bundle initial"]
18
+ # - Default is based on +job_type+.
19
+ # +scm+ - URL to the repository. Currently only support git URLs.
20
+ # +public_scm+ - convert the +scm+ URL to a publicly accessible URL for the Jenkins job config.
21
+ # +scm_branches+ - array of branches to run builds. Default: ['master']
22
+ # +rubies+ - list of RVM rubies to run tests (via Jenkins Axes).
23
+ # +assigned_node+ - restrict this job to running on slaves with these labels (space separated)
24
+ def initialize(job_type = :ruby, &block)
25
+ self.job_type = job_type.to_s if job_type
26
+
27
+ yield self
28
+
29
+ self.scm_branches ||= ["master"]
30
+ raise InvalidTemplate unless VALID_JOB_TEMPLATES.include?(job_type.to_s)
31
+ end
32
+
33
+ def builder
34
+ b = Builder::XmlMarkup.new :indent => 2
35
+ b.instruct!
36
+ b.tag!(matrix_project? ? "matrix-project" : "project") do
37
+ b.actions
38
+ b.description
39
+ b.keepDependencies false
40
+ b.properties
41
+ build_scm b
42
+ b.assignedNode assigned_node if assigned_node
43
+ b.canRoam !assigned_node
44
+ b.disabled false
45
+ b.blockBuildWhenUpstreamBuilding false
46
+ b.triggers :class => "vector"
47
+ b.concurrentBuild false
48
+ build_axes b if matrix_project?
49
+ build_steps b
50
+ b.publishers
51
+ build_wrappers b
52
+ b.runSequentially false if matrix_project?
53
+ end
54
+ end
55
+
56
+ def to_xml
57
+ builder.to_s
58
+ end
59
+
60
+ protected
61
+
62
+ # <scm class="hudson.plugins.git.GitSCM"> ... </scm>
63
+ def build_scm(b)
64
+ if scm && scm =~ /git/
65
+ scm_url = public_scm ? public_only_git_scm(scm) : scm
66
+ b.scm :class => "hudson.plugins.git.GitSCM" do
67
+ b.configVersion 1
68
+ b.remoteRepositories do
69
+ b.tag! "org.spearce.jgit.transport.RemoteConfig" do
70
+ b.string "origin"
71
+ b.int 5
72
+ b.string "fetch"
73
+ b.string "+refs/heads/*:refs/remotes/origin/*"
74
+ b.string "receivepack"
75
+ b.string "git-upload-pack"
76
+ b.string "uploadpack"
77
+ b.string "git-upload-pack"
78
+ b.string "url"
79
+ b.string scm_url
80
+ b.string "tagopt"
81
+ b.string
82
+ end
83
+ end
84
+
85
+ if scm_branches
86
+ b.branches do
87
+ scm_branches.each do |branch|
88
+ b.tag! "hudson.plugins.git.BranchSpec" do
89
+ b.name branch
90
+ end
91
+ end
92
+ end
93
+ end
94
+
95
+ b.localBranch
96
+ b.mergeOptions
97
+ b.recursiveSubmodules false
98
+ b.doGenerateSubmoduleConfigurations false
99
+ b.authorOrCommitter false
100
+ b.clean false
101
+ b.wipeOutWorkspace false
102
+ b.buildChooser :class => "hudson.plugins.git.util.DefaultBuildChooser"
103
+ b.gitTool "Default"
104
+ b.submoduleCfg :class => "list"
105
+ b.relativeTargetDir
106
+ b.excludedRegions
107
+ b.excludedUsers
108
+ end
109
+ end
110
+ end
111
+
112
+ def matrix_project?
113
+ !(rubies.blank? && node_labels.blank?)
114
+ end
115
+
116
+ # <hudson.matrix.TextAxis>
117
+ # <name>RUBY_VERSION</name>
118
+ # <values>
119
+ # <string>1.8.7</string>
120
+ # <string>1.9.2</string>
121
+ # <string>rbx-head</string>
122
+ # <string>jruby</string>
123
+ # </values>
124
+ # </hudson.matrix.TextAxis>
125
+ # <hudson.matrix.LabelAxis>
126
+ # <name>label</name>
127
+ # <values>
128
+ # <string>1.8.7</string>
129
+ # <string>ubuntu</string>
130
+ # </values>
131
+ # </hudson.matrix.LabelAxis>
132
+ def build_axes(b)
133
+ b.axes do
134
+ unless rubies.blank?
135
+ b.tag! "hudson.matrix.TextAxis" do
136
+ b.name "RUBY_VERSION"
137
+ b.values do
138
+ rubies.each do |rvm_name|
139
+ b.string rvm_name
140
+ end
141
+ end
142
+ end
143
+ end
144
+ unless node_labels.blank?
145
+ b.tag! "hudson.matrix.LabelAxis" do
146
+ b.name "label"
147
+ b.values do
148
+ node_labels.each do |label|
149
+ b.string label
150
+ end
151
+ end
152
+ end
153
+ end
154
+ end
155
+ end
156
+
157
+ # Example:
158
+ # <buildWrappers>
159
+ # <hudson.plugins.envfile.EnvFileBuildWrapper>
160
+ # <filePath>/path/to/env/file</filePath>
161
+ # </hudson.plugins.envfile.EnvFileBuildWrapper>
162
+ # </buildWrappers>
163
+ def build_wrappers(b)
164
+ if envfile
165
+ b.buildWrappers do
166
+ self.envfile = [envfile] unless envfile.is_a?(Array)
167
+ b.tag! "hudson.plugins.envfile.EnvFileBuildWrapper" do
168
+ envfile.each do |file|
169
+ b.filePath file
170
+ end
171
+ end
172
+ end
173
+ else
174
+ b.buildWrappers
175
+ end
176
+ end
177
+
178
+ # The important sequence of steps that are run to process a job build.
179
+ # Can be defaulted by the +job_type+ using +default_steps(job_type)+,
180
+ # or customized via +steps+ array.
181
+ def build_steps(b)
182
+ b.builders do
183
+ self.steps ||= default_steps(job_type)
184
+ steps.each do |step|
185
+ method, cmd = step
186
+ send(method.to_sym, b, cmd) # e.g. build_shell_step(b, "bundle install")
187
+ end
188
+ end
189
+ end
190
+
191
+ def default_steps(job_type)
192
+ steps = case job_type.to_sym
193
+ when :rails, :rails3
194
+ [
195
+ [:build_shell_step, "bundle install"],
196
+ [:build_ruby_step, <<-RUBY.gsub(/^ /, '')],
197
+ unless File.exist?("config/database.yml")
198
+ require 'fileutils'
199
+ example = Dir["config/database*"].first
200
+ puts "Using \#{example} for config/database.yml"
201
+ FileUtils.cp example, "config/database.yml"
202
+ end
203
+ RUBY
204
+ [:build_shell_step, "bundle exec rake db:create:all"],
205
+ [:build_shell_step, <<-RUBY.gsub(/^ /, '')],
206
+ if [ -f db/schema.rb ]; then
207
+ bundle exec rake db:schema:load
208
+ else
209
+ bundle exec rake db:migrate
210
+ fi
211
+ RUBY
212
+ [:build_shell_step, "bundle exec rake"]
213
+ ]
214
+ when :ruby, :rubygems
215
+ [
216
+ [:build_shell_step, "bundle install"],
217
+ [:build_shell_step, "bundle exec rake"]
218
+ ]
219
+ when :erlang
220
+ [
221
+ [:build_shell_step, "rebar compile"],
222
+ [:build_shell_step, "rebar ct"]
223
+ ]
224
+ else
225
+ [ [:build_shell_step, 'echo "THERE ARE NO STEPS! Except this one..."'] ]
226
+ end
227
+ rubies.blank? ? steps : default_rvm_steps + steps
228
+ end
229
+
230
+ def default_rvm_steps
231
+ [
232
+ [:build_shell_step, "rvm $RUBY_VERSION"],
233
+ [:build_shell_step, "rvm gemset create ruby-$RUBY_VERSION && rvm gemset use ruby-$RUBY_VERSION"]
234
+ ]
235
+ end
236
+
237
+ # <hudson.tasks.Shell>
238
+ # <command>echo &apos;THERE ARE NO STEPS! Except this one...&apos;</command>
239
+ # </hudson.tasks.Shell>
240
+ def build_shell_step(b, command)
241
+ b.tag! "hudson.tasks.Shell" do
242
+ b.command command.to_xs.gsub("&amp;", '&') #.gsub(%r{"}, '&quot;').gsub(%r{'}, '&apos;')
243
+ end
244
+ end
245
+
246
+ # <hudson.plugins.ruby.Ruby>
247
+ # <command>unless File.exist?(&quot;config/database.yml&quot;)
248
+ # require &apos;fileutils&apos;
249
+ # example = Dir[&quot;config/database*&quot;].first
250
+ # puts &quot;Using #{example} for config/database.yml&quot;
251
+ # FileUtils.cp example, &quot;config/database.yml&quot;
252
+ # end</command>
253
+ # </hudson.plugins.ruby.Ruby>
254
+ def build_ruby_step(b, command)
255
+ b.tag! "hudson.plugins.ruby.Ruby" do
256
+ b.command do
257
+ b << command.to_xs.gsub(%r{"}, '&quot;').gsub(%r{'}, '&apos;')
258
+ end
259
+ end
260
+ end
261
+
262
+ # Usage: build_ruby_step b, "db:schema:load"
263
+ #
264
+ # <hudson.plugins.rake.Rake>
265
+ # <rakeInstallation>(Default)</rakeInstallation>
266
+ # <rakeFile></rakeFile>
267
+ # <rakeLibDir></rakeLibDir>
268
+ # <rakeWorkingDir></rakeWorkingDir>
269
+ # <tasks>db:schema:load</tasks>
270
+ # <silent>false</silent>
271
+ # </hudson.plugins.rake.Rake>
272
+ def build_rake_step(b, tasks)
273
+ b.tag! "hudson.plugins.rake.Rake" do
274
+ b.rakeInstallation "(Default)"
275
+ b.rakeFile
276
+ b.rakeLibDir
277
+ b.rakeWorkingDir
278
+ b.tasks tasks
279
+ b.silent false
280
+ end
281
+ end
282
+
283
+ # Converts git@github.com:drnic/newgem.git into git://github.com/drnic/newgem.git
284
+ def public_only_git_scm(scm_url)
285
+ if scm_url =~ /git@([\w\-_.]+):(.+)\.git/
286
+ "git://#{$1}/#{$2}.git"
287
+ else
288
+ scm_url
289
+ end
290
+ end
291
+ end
292
+ end
@@ -0,0 +1,22 @@
1
+ module Jenkins
2
+ class ProjectScm
3
+
4
+ def self.discover(scm)
5
+ ProjectScmGit.new(scm) if File.exist?(".git") && File.directory?(".git")
6
+ end
7
+
8
+ def self.supported
9
+ %w[git]
10
+ end
11
+ end
12
+
13
+ class ProjectScmGit < ProjectScm
14
+ def initialize(url = nil)
15
+ @url = url
16
+ end
17
+
18
+ def url
19
+ @url ||= `git config remote.origin.url`.strip
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,11 @@
1
+ module Jenkins
2
+ class Remote
3
+ def self.add_server(name, uri)
4
+ remotes[name] = uri
5
+ end
6
+
7
+ def self.remotes
8
+ @remotes ||= {}
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,3 @@
1
+ module Jenkins
2
+ VERSION = "0.6.4.1"
3
+ end
@@ -0,0 +1,103 @@
1
+ <?xml version='1.0' encoding='UTF-8'?>
2
+ <hudson>
3
+ <version>1.359</version>
4
+ <numExecutors>2</numExecutors>
5
+ <mode>NORMAL</mode>
6
+ <authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>
7
+ <securityRealm class="hudson.security.SecurityRealm$None"/>
8
+ <jdks/>
9
+ <clouds>
10
+ <hudson.plugins.ec2.EC2Cloud>
11
+ <name>ec2-US_EAST_1</name>
12
+ <accessId>0MVEQ5Q0BNYEGJX898G2</accessId>
13
+ <secretKey>[REMOVED]</secretKey>
14
+ <privateKey>
15
+ <privateKey>[REMOVED]</privateKey>
16
+ </privateKey>
17
+ <instanceCap>2147483647</instanceCap>
18
+ <templates>
19
+ <hudson.plugins.ec2.SlaveTemplate>
20
+ <ami>ami-79d43d10</ami>
21
+ <description>Ubuntu Lucid 10.04 64bit Server</description>
22
+ <remoteFS>/mnt/hudson</remoteFS>
23
+ <type>LARGE</type>
24
+ <labels>Ubuntu-Lucid-10.04-server-amd64 GCC_44</labels>
25
+ <initScript></initScript>
26
+ <userData></userData>
27
+ <numExecutors>4</numExecutors>
28
+ <remoteAdmin>ubuntu</remoteAdmin>
29
+ <rootCommandPrefix>sudo</rootCommandPrefix>
30
+ </hudson.plugins.ec2.SlaveTemplate>
31
+ <hudson.plugins.ec2.SlaveTemplate>
32
+ <ami>ami-e7d53c8e</ami>
33
+ <description>Ubuntu Karmic 9.10 64bit Server</description>
34
+ <remoteFS>/mnt/hudson</remoteFS>
35
+ <type>LARGE</type>
36
+ <labels>Ubuntu-Karmic-9.10-server-amd64 GCC_43</labels>
37
+ <initScript></initScript>
38
+ <userData></userData>
39
+ <numExecutors>4</numExecutors>
40
+ <remoteAdmin>ubuntu</remoteAdmin>
41
+ <rootCommandPrefix>sudo</rootCommandPrefix>
42
+ </hudson.plugins.ec2.SlaveTemplate>
43
+ </templates>
44
+ <region>US_EAST_1</region>
45
+ </hudson.plugins.ec2.EC2Cloud>
46
+ </clouds>
47
+ <slaves>
48
+ <slave>
49
+ <name>Legolas</name>
50
+ <description>Legolas Mac Pro</description>
51
+ <remoteFS>/Users/hudon/work</remoteFS>
52
+ <numExecutors>2</numExecutors>
53
+ <mode>NORMAL</mode>
54
+ <retentionStrategy class="hudson.slaves.RetentionStrategy$Always"/>
55
+ <launcher class="hudson.plugins.sshslaves.SSHLauncher">
56
+ <host>legolas.thefrontside.net</host>
57
+ <port>22</port>
58
+ <username>cowboyd</username>
59
+ <password>[REMOVED]</password>
60
+ <privatekey></privatekey>
61
+ <jvmOptions></jvmOptions>
62
+ </launcher>
63
+ <label>OSX-Snow-Leopard-10.6.3</label>
64
+ <nodeProperties/>
65
+ </slave>
66
+ <slave>
67
+ <name>Gimli</name>
68
+ <description>The Mac Mini Sitting on the bookshelf at the frontside office</description>
69
+ <remoteFS>/Users/hudson/work</remoteFS>
70
+ <numExecutors>2</numExecutors>
71
+ <mode>NORMAL</mode>
72
+ <retentionStrategy class="hudson.slaves.RetentionStrategy$Always"/>
73
+ <launcher class="hudson.plugins.sshslaves.SSHLauncher">
74
+ <host>gimli.thefrontside.net</host>
75
+ <port>22</port>
76
+ <username>hudson</username>
77
+ <password>[REMOVED]</password>
78
+ <privatekey></privatekey>
79
+ <jvmOptions></jvmOptions>
80
+ </launcher>
81
+ <label>OSX-Leopard-10.5</label>
82
+ <nodeProperties/>
83
+ </slave>
84
+ </slaves>
85
+ <quietPeriod>5</quietPeriod>
86
+ <scmCheckoutRetryCount>0</scmCheckoutRetryCount>
87
+ <views>
88
+ <hudson.model.AllView>
89
+ <owner class="hudson" reference="../../.."/>
90
+ <name>All</name>
91
+ <filterExecutors>false</filterExecutors>
92
+ <filterQueue>false</filterQueue>
93
+ </hudson.model.AllView>
94
+ </views>
95
+ <primaryView>All</primaryView>
96
+ <slaveAgentPort>0</slaveAgentPort>
97
+ <label></label>
98
+ <nodeProperties/>
99
+ <globalNodeProperties/>
100
+ <disabledAdministrativeMonitors>
101
+ <string>OldData</string>
102
+ </disabledAdministrativeMonitors>
103
+ </hudson>
@@ -0,0 +1,59 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project>
3
+ <actions/>
4
+ <description/>
5
+ <keepDependencies>false</keepDependencies>
6
+ <properties/>
7
+ <scm class="hudson.plugins.git.GitSCM">
8
+ <configVersion>1</configVersion>
9
+ <remoteRepositories>
10
+ <org.spearce.jgit.transport.RemoteConfig>
11
+ <string>origin</string>
12
+ <int>5</int>
13
+ <string>fetch</string>
14
+ <string>+refs/heads/*:refs/remotes/origin/*</string>
15
+ <string>receivepack</string>
16
+ <string>git-upload-pack</string>
17
+ <string>uploadpack</string>
18
+ <string>git-upload-pack</string>
19
+ <string>url</string>
20
+ <string>git://codebasehq.com/mocra/misc/mocra-web.git</string>
21
+ <string>tagopt</string>
22
+ <string/>
23
+ </org.spearce.jgit.transport.RemoteConfig>
24
+ </remoteRepositories>
25
+ <branches>
26
+ <hudson.plugins.git.BranchSpec>
27
+ <name>master</name>
28
+ </hudson.plugins.git.BranchSpec>
29
+ </branches>
30
+ <localBranch/>
31
+ <mergeOptions/>
32
+ <recursiveSubmodules>false</recursiveSubmodules>
33
+ <doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
34
+ <authorOrCommitter>false</authorOrCommitter>
35
+ <clean>false</clean>
36
+ <wipeOutWorkspace>false</wipeOutWorkspace>
37
+ <buildChooser class="hudson.plugins.git.util.DefaultBuildChooser"/>
38
+ <gitTool>Default</gitTool>
39
+ <submoduleCfg class="list"/>
40
+ <relativeTargetDir/>
41
+ <excludedRegions/>
42
+ <excludedUsers/>
43
+ </scm>
44
+ <canRoam>true</canRoam>
45
+ <disabled>false</disabled>
46
+ <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
47
+ <triggers class="vector"/>
48
+ <concurrentBuild>false</concurrentBuild>
49
+ <builders>
50
+ <hudson.tasks.Shell>
51
+ <command>rebar compile</command>
52
+ </hudson.tasks.Shell>
53
+ <hudson.tasks.Shell>
54
+ <command>rebar ct</command>
55
+ </hudson.tasks.Shell>
56
+ </builders>
57
+ <publishers/>
58
+ <buildWrappers/>
59
+ </project>