akqa-jenkins 0.6.4.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +8 -0
- data/Changelog.md +54 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +56 -0
- data/README.md +159 -0
- data/Rakefile +82 -0
- data/bin/jenkins +11 -0
- data/cucumber.yml +8 -0
- data/features/build_details.feature +42 -0
- data/features/configure.feature +36 -0
- data/features/default_host.feature +26 -0
- data/features/development.feature +14 -0
- data/features/launch_server.feature +16 -0
- data/features/listing_jobs.feature +34 -0
- data/features/manage_jobs.feature +214 -0
- data/features/manage_slave_nodes.feature +82 -0
- data/features/step_definitions/common_steps.rb +192 -0
- data/features/step_definitions/fixture_project_steps.rb +8 -0
- data/features/step_definitions/jenkins_steps.rb +116 -0
- data/features/step_definitions/scm_steps.rb +12 -0
- data/features/support/common.rb +37 -0
- data/features/support/env.rb +19 -0
- data/features/support/hooks.rb +16 -0
- data/features/support/jenkins_helpers.rb +6 -0
- data/features/support/matchers.rb +10 -0
- data/fixtures/jenkins/envfile.hpi +0 -0
- data/fixtures/jenkins/git.hpi +0 -0
- data/fixtures/jenkins/github.hpi +0 -0
- data/fixtures/jenkins/greenballs.hpi +0 -0
- data/fixtures/jenkins/rake.hpi +0 -0
- data/fixtures/jenkins/ruby.hpi +0 -0
- data/fixtures/projects/erlang/rebar.config +1 -0
- data/fixtures/projects/non-bundler/Rakefile +4 -0
- data/fixtures/projects/rails-3/.gitignore +4 -0
- data/fixtures/projects/rails-3/Gemfile +30 -0
- data/fixtures/projects/rails-3/Gemfile.lock +74 -0
- data/fixtures/projects/rails-3/README +256 -0
- data/fixtures/projects/rails-3/Rakefile +7 -0
- data/fixtures/projects/rails-3/app/controllers/application_controller.rb +3 -0
- data/fixtures/projects/rails-3/app/helpers/application_helper.rb +2 -0
- data/fixtures/projects/rails-3/app/views/layouts/application.html.erb +14 -0
- data/fixtures/projects/rails-3/config.ru +4 -0
- data/fixtures/projects/rails-3/config/application.rb +42 -0
- data/fixtures/projects/rails-3/config/boot.rb +13 -0
- data/fixtures/projects/rails-3/config/database.yml +22 -0
- data/fixtures/projects/rails-3/config/environment.rb +5 -0
- data/fixtures/projects/rails-3/config/environments/development.rb +26 -0
- data/fixtures/projects/rails-3/config/environments/production.rb +49 -0
- data/fixtures/projects/rails-3/config/environments/test.rb +35 -0
- data/fixtures/projects/rails-3/config/initializers/backtrace_silencers.rb +7 -0
- data/fixtures/projects/rails-3/config/initializers/inflections.rb +10 -0
- data/fixtures/projects/rails-3/config/initializers/mime_types.rb +5 -0
- data/fixtures/projects/rails-3/config/initializers/secret_token.rb +7 -0
- data/fixtures/projects/rails-3/config/initializers/session_store.rb +8 -0
- data/fixtures/projects/rails-3/config/locales/en.yml +5 -0
- data/fixtures/projects/rails-3/config/routes.rb +58 -0
- data/fixtures/projects/rails-3/db/seeds.rb +7 -0
- data/fixtures/projects/rails-3/doc/README_FOR_APP +2 -0
- data/fixtures/projects/rails-3/lib/tasks/.gitkeep +0 -0
- data/fixtures/projects/rails-3/public/404.html +26 -0
- data/fixtures/projects/rails-3/public/422.html +26 -0
- data/fixtures/projects/rails-3/public/500.html +26 -0
- data/fixtures/projects/rails-3/public/favicon.ico +0 -0
- data/fixtures/projects/rails-3/public/images/rails.png +0 -0
- data/fixtures/projects/rails-3/public/index.html +239 -0
- data/fixtures/projects/rails-3/public/javascripts/application.js +2 -0
- data/fixtures/projects/rails-3/public/javascripts/controls.js +965 -0
- data/fixtures/projects/rails-3/public/javascripts/dragdrop.js +974 -0
- data/fixtures/projects/rails-3/public/javascripts/effects.js +1123 -0
- data/fixtures/projects/rails-3/public/javascripts/prototype.js +6001 -0
- data/fixtures/projects/rails-3/public/javascripts/rails.js +175 -0
- data/fixtures/projects/rails-3/public/robots.txt +5 -0
- data/fixtures/projects/rails-3/public/stylesheets/.gitkeep +0 -0
- data/fixtures/projects/rails-3/script/rails +6 -0
- data/fixtures/projects/rails-3/test/performance/browsing_test.rb +9 -0
- data/fixtures/projects/rails-3/test/test_helper.rb +13 -0
- data/fixtures/projects/rails-3/vendor/plugins/.gitkeep +0 -0
- data/fixtures/projects/ruby/Gemfile +3 -0
- data/fixtures/projects/ruby/Gemfile.lock +10 -0
- data/fixtures/projects/ruby/Rakefile +4 -0
- data/jenkins.gemspec +33 -0
- data/lib/jenkins.rb +6 -0
- data/lib/jenkins/api.rb +250 -0
- data/lib/jenkins/cli.rb +291 -0
- data/lib/jenkins/cli/formatting.rb +53 -0
- data/lib/jenkins/config.rb +27 -0
- data/lib/jenkins/core_ext/hash.rb +9 -0
- data/lib/jenkins/core_ext/object/blank.rb +77 -0
- data/lib/jenkins/hudson-cli.jar +0 -0
- data/lib/jenkins/job_config_builder.rb +292 -0
- data/lib/jenkins/project_scm.rb +22 -0
- data/lib/jenkins/remote.rb +11 -0
- data/lib/jenkins/version.rb +3 -0
- data/spec/fixtures/ec2_global.config.xml +103 -0
- data/spec/fixtures/erlang.single.config.xml +59 -0
- data/spec/fixtures/rails.multi.config.xml +82 -0
- data/spec/fixtures/rails.single.config.triggers.xml +84 -0
- data/spec/fixtures/rails.single.config.xml +80 -0
- data/spec/fixtures/ruby.multi-ruby-multi-labels.config.xml +84 -0
- data/spec/fixtures/ruby.multi.config.xml +77 -0
- data/spec/fixtures/ruby.single.config.xml +58 -0
- data/spec/fixtures/therubyracer.config.xml +77 -0
- data/spec/hash_key_cleaner_spec.rb +25 -0
- data/spec/job_config_builder_spec.rb +150 -0
- data/spec/spec_helper.rb +15 -0
- metadata +283 -0
Binary file
|
@@ -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 'THERE ARE NO STEPS! Except this one...'</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("&", '&') #.gsub(%r{"}, '"').gsub(%r{'}, ''')
|
243
|
+
end
|
244
|
+
end
|
245
|
+
|
246
|
+
# <hudson.plugins.ruby.Ruby>
|
247
|
+
# <command>unless File.exist?("config/database.yml")
|
248
|
+
# require 'fileutils'
|
249
|
+
# example = Dir["config/database*"].first
|
250
|
+
# puts "Using #{example} for config/database.yml"
|
251
|
+
# FileUtils.cp example, "config/database.yml"
|
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{"}, '"').gsub(%r{'}, ''')
|
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,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>
|