hudson 0.3.0.beta.14 → 0.3.0.beta.15
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.
- data/Gemfile.lock +1 -1
- data/features/step_definitions/hudson_steps.rb +13 -28
- data/hudson.gemspec +3 -3
- data/lib/hudson/api.rb +6 -0
- data/lib/hudson/job_config_builder.rb +34 -22
- data/lib/hudson/version.rb +1 -1
- data/spec/fixtures/ruby.single.config.xml +58 -0
- data/spec/job_config_builder_spec.rb +33 -4
- metadata +5 -4
data/Gemfile.lock
CHANGED
@@ -3,6 +3,7 @@ Given /^I have a Hudson server running$/ do
|
|
3
3
|
port = 3010
|
4
4
|
begin
|
5
5
|
res = Net::HTTP.start("localhost", port) { |http| http.get('/api/json') }
|
6
|
+
Hudson::Api.base_uri "http://localhost:#{port}"
|
6
7
|
rescue Errno::ECONNREFUSED => e
|
7
8
|
puts "\n\n\nERROR: To run tests, launch hudson in test mode: 'rake hudson:server:test'\n\n\n"
|
8
9
|
exit
|
@@ -14,16 +15,10 @@ end
|
|
14
15
|
|
15
16
|
Given /^the Hudson server has no current jobs$/ do
|
16
17
|
if port = @hudson_port
|
17
|
-
|
18
|
-
|
19
|
-
hudson_info = Yajl::Parser.new.parse(open("http://#{@hudson_host}:#{@hudson_port}/api/json"))
|
20
|
-
|
21
|
-
hudson_info['jobs'].each do |job|
|
22
|
-
job_url = job['url']
|
23
|
-
res = Net::HTTP.start("localhost", port) { |http| http.post("#{job_url}doDelete/api/json", {}) }
|
18
|
+
Hudson::Api.summary['jobs'].each do |job|
|
19
|
+
Hudson::Api.delete_job(job['name'])
|
24
20
|
end
|
25
|
-
|
26
|
-
hudson_info['jobs'].should == []
|
21
|
+
Hudson::Api.summary['jobs'].should == []
|
27
22
|
else
|
28
23
|
puts "WARNING: Run 'I have a Hudson server running' step first."
|
29
24
|
end
|
@@ -31,26 +26,16 @@ end
|
|
31
26
|
|
32
27
|
Given /^the Hudson server has no slaves$/ do
|
33
28
|
if port = @hudson_port
|
34
|
-
|
35
|
-
|
36
|
-
base_url = "http://#{@hudson_host}:#{@hudson_port}"
|
37
|
-
hudson_info = Yajl::Parser.new.parse(open("#{base_url}/api/json"))
|
38
|
-
(hudson_info['jobs'] || []).each do |job|
|
39
|
-
job_url = job['url']
|
40
|
-
res = Net::HTTP.start("localhost", port) { |http| http.post("#{job_url}doDelete/api/json", {}) }
|
29
|
+
Hudson::Api.summary['jobs'].each do |job|
|
30
|
+
Hudson::Api.delete_job(job['name'])
|
41
31
|
end
|
42
|
-
|
43
|
-
hudson_info['jobs'].should == []
|
32
|
+
Hudson::Api.summary['jobs'].should == []
|
44
33
|
|
45
|
-
|
46
|
-
|
47
|
-
name
|
48
|
-
next if name == "master"
|
49
|
-
job_url = "#{base_url}/computer/#{CGI::escape(name).gsub('+', '%20')}"
|
50
|
-
res = Net::HTTP.start("localhost", port) { |http| http.post("#{job_url}/doDelete/api/json", {}) }
|
34
|
+
Hudson::Api.nodes['computer'].each do |node|
|
35
|
+
name = node['displayName']
|
36
|
+
Hudson::Api.delete_node(name) unless name == "master"
|
51
37
|
end
|
52
|
-
|
53
|
-
hudson_info['computer'].size.should == 1
|
38
|
+
Hudson::Api.nodes['computer'].size.should == 1
|
54
39
|
else
|
55
40
|
puts "WARNING: Run 'I have a Hudson server running' step first."
|
56
41
|
end
|
@@ -91,8 +76,8 @@ end
|
|
91
76
|
Then /^I should see a hudson server on port (\d+)$/ do |port|
|
92
77
|
require 'json'
|
93
78
|
try(15, 2) do
|
94
|
-
|
95
|
-
|
79
|
+
Hudson::Api.base_uri "http://localhost:#{port}"
|
80
|
+
Hudson::Api.summary['nodeDescription'].should == "the master Hudson node"
|
96
81
|
end
|
97
82
|
end
|
98
83
|
|
data/hudson.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{hudson}
|
5
|
-
s.version = "0.3.0.beta.
|
5
|
+
s.version = "0.3.0.beta.15"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Charles Lowell", "Dr Nic Williams"]
|
9
|
-
s.date = %q{2010-11-
|
9
|
+
s.date = %q{2010-11-02}
|
10
10
|
s.default_executable = %q{hudson}
|
11
11
|
s.description = %q{A suite of utilities for bringing continous integration to your projects (not the other way around) with hudson CI}
|
12
12
|
s.email = ["cowboyd@thefrontside.net", "drnicwilliams@gmail.com"]
|
13
13
|
s.executables = ["hudson"]
|
14
|
-
s.files = ["bin", "bin/hudson", "features", "features/development.feature", "features/launch_server.feature", "features/listing_jobs.feature", "features/manage_jobs.feature", "features/manage_slave_nodes.feature", "features/step_definitions", "features/step_definitions/common_steps.rb", "features/step_definitions/fixture_project_steps.rb", "features/step_definitions/hudson_steps.rb", "features/step_definitions/scm_steps.rb", "features/support", "features/support/common.rb", "features/support/env.rb", "features/support/hooks.rb", "features/support/matchers.rb", "fixtures", "fixtures/projects", "fixtures/projects/non-bundler", "fixtures/projects/non-bundler/Rakefile", "fixtures/projects/rails-3", "fixtures/projects/rails-3/app", "fixtures/projects/rails-3/app/controllers", "fixtures/projects/rails-3/app/controllers/application_controller.rb", "fixtures/projects/rails-3/app/helpers", "fixtures/projects/rails-3/app/helpers/application_helper.rb", "fixtures/projects/rails-3/app/mailers", "fixtures/projects/rails-3/app/models", "fixtures/projects/rails-3/app/views", "fixtures/projects/rails-3/app/views/layouts", "fixtures/projects/rails-3/app/views/layouts/application.html.erb", "fixtures/projects/rails-3/config", "fixtures/projects/rails-3/config/application.rb", "fixtures/projects/rails-3/config/boot.rb", "fixtures/projects/rails-3/config/database.yml", "fixtures/projects/rails-3/config/environment.rb", "fixtures/projects/rails-3/config/environments", "fixtures/projects/rails-3/config/environments/development.rb", "fixtures/projects/rails-3/config/environments/production.rb", "fixtures/projects/rails-3/config/environments/test.rb", "fixtures/projects/rails-3/config/initializers", "fixtures/projects/rails-3/config/initializers/backtrace_silencers.rb", "fixtures/projects/rails-3/config/initializers/inflections.rb", "fixtures/projects/rails-3/config/initializers/mime_types.rb", "fixtures/projects/rails-3/config/initializers/secret_token.rb", "fixtures/projects/rails-3/config/initializers/session_store.rb", "fixtures/projects/rails-3/config/locales", "fixtures/projects/rails-3/config/locales/en.yml", "fixtures/projects/rails-3/config/routes.rb", "fixtures/projects/rails-3/config.ru", "fixtures/projects/rails-3/db", "fixtures/projects/rails-3/db/seeds.rb", "fixtures/projects/rails-3/doc", "fixtures/projects/rails-3/doc/README_FOR_APP", "fixtures/projects/rails-3/Gemfile", "fixtures/projects/rails-3/Gemfile.lock", "fixtures/projects/rails-3/lib", "fixtures/projects/rails-3/lib/tasks", "fixtures/projects/rails-3/log", "fixtures/projects/rails-3/log/development.log", "fixtures/projects/rails-3/log/production.log", "fixtures/projects/rails-3/log/server.log", "fixtures/projects/rails-3/log/test.log", "fixtures/projects/rails-3/public", "fixtures/projects/rails-3/public/404.html", "fixtures/projects/rails-3/public/422.html", "fixtures/projects/rails-3/public/500.html", "fixtures/projects/rails-3/public/favicon.ico", "fixtures/projects/rails-3/public/images", "fixtures/projects/rails-3/public/images/rails.png", "fixtures/projects/rails-3/public/index.html", "fixtures/projects/rails-3/public/javascripts", "fixtures/projects/rails-3/public/javascripts/application.js", "fixtures/projects/rails-3/public/javascripts/controls.js", "fixtures/projects/rails-3/public/javascripts/dragdrop.js", "fixtures/projects/rails-3/public/javascripts/effects.js", "fixtures/projects/rails-3/public/javascripts/prototype.js", "fixtures/projects/rails-3/public/javascripts/rails.js", "fixtures/projects/rails-3/public/robots.txt", "fixtures/projects/rails-3/public/stylesheets", "fixtures/projects/rails-3/Rakefile", "fixtures/projects/rails-3/README", "fixtures/projects/rails-3/script", "fixtures/projects/rails-3/script/rails", "fixtures/projects/rails-3/test", "fixtures/projects/rails-3/test/fixtures", "fixtures/projects/rails-3/test/functional", "fixtures/projects/rails-3/test/integration", "fixtures/projects/rails-3/test/performance", "fixtures/projects/rails-3/test/performance/browsing_test.rb", "fixtures/projects/rails-3/test/test_helper.rb", "fixtures/projects/rails-3/test/unit", "fixtures/projects/rails-3/vendor", "fixtures/projects/rails-3/vendor/plugins", "fixtures/projects/ruby", "fixtures/projects/ruby/Gemfile", "fixtures/projects/ruby/Gemfile.lock", "fixtures/projects/ruby/Rakefile", "Gemfile", "Gemfile.lock", "hudson.gemspec", "lib", "lib/hudson", "lib/hudson/api.rb", "lib/hudson/cli", "lib/hudson/cli/formatting.rb", "lib/hudson/cli.rb", "lib/hudson/config.rb", "lib/hudson/core_ext", "lib/hudson/core_ext/object", "lib/hudson/core_ext/object/blank.rb", "lib/hudson/hudson-cli.jar", "lib/hudson/hudson.war", "lib/hudson/hudson_version.rb", "lib/hudson/job_config_builder.rb", "lib/hudson/plugins", "lib/hudson/plugins/git.hpi", "lib/hudson/plugins/github.hpi", "lib/hudson/plugins/greenballs.hpi", "lib/hudson/plugins/rake.hpi", "lib/hudson/plugins/ruby.hpi", "lib/hudson/project_scm.rb", "lib/hudson/remote.rb", "lib/hudson/version.rb", "lib/hudson.rb", "Rakefile", "README.md", "spec", "spec/fixtures", "spec/fixtures/ec2_global.config.xml", "spec/fixtures/rails.multi.config.xml", "spec/fixtures/rails.single.config.triggers.xml", "spec/fixtures/rails.single.config.xml", "spec/fixtures/rubygem.config.xml", "spec/fixtures/therubyracer.config.xml", "spec/job_config_builder_spec.rb", "spec/spec_helper.rb", "tasks", "tasks/upgrade.rake"]
|
14
|
+
s.files = ["bin", "bin/hudson", "features", "features/development.feature", "features/launch_server.feature", "features/listing_jobs.feature", "features/manage_jobs.feature", "features/manage_slave_nodes.feature", "features/step_definitions", "features/step_definitions/common_steps.rb", "features/step_definitions/fixture_project_steps.rb", "features/step_definitions/hudson_steps.rb", "features/step_definitions/scm_steps.rb", "features/support", "features/support/common.rb", "features/support/env.rb", "features/support/hooks.rb", "features/support/matchers.rb", "fixtures", "fixtures/projects", "fixtures/projects/non-bundler", "fixtures/projects/non-bundler/Rakefile", "fixtures/projects/rails-3", "fixtures/projects/rails-3/app", "fixtures/projects/rails-3/app/controllers", "fixtures/projects/rails-3/app/controllers/application_controller.rb", "fixtures/projects/rails-3/app/helpers", "fixtures/projects/rails-3/app/helpers/application_helper.rb", "fixtures/projects/rails-3/app/mailers", "fixtures/projects/rails-3/app/models", "fixtures/projects/rails-3/app/views", "fixtures/projects/rails-3/app/views/layouts", "fixtures/projects/rails-3/app/views/layouts/application.html.erb", "fixtures/projects/rails-3/config", "fixtures/projects/rails-3/config/application.rb", "fixtures/projects/rails-3/config/boot.rb", "fixtures/projects/rails-3/config/database.yml", "fixtures/projects/rails-3/config/environment.rb", "fixtures/projects/rails-3/config/environments", "fixtures/projects/rails-3/config/environments/development.rb", "fixtures/projects/rails-3/config/environments/production.rb", "fixtures/projects/rails-3/config/environments/test.rb", "fixtures/projects/rails-3/config/initializers", "fixtures/projects/rails-3/config/initializers/backtrace_silencers.rb", "fixtures/projects/rails-3/config/initializers/inflections.rb", "fixtures/projects/rails-3/config/initializers/mime_types.rb", "fixtures/projects/rails-3/config/initializers/secret_token.rb", "fixtures/projects/rails-3/config/initializers/session_store.rb", "fixtures/projects/rails-3/config/locales", "fixtures/projects/rails-3/config/locales/en.yml", "fixtures/projects/rails-3/config/routes.rb", "fixtures/projects/rails-3/config.ru", "fixtures/projects/rails-3/db", "fixtures/projects/rails-3/db/seeds.rb", "fixtures/projects/rails-3/doc", "fixtures/projects/rails-3/doc/README_FOR_APP", "fixtures/projects/rails-3/Gemfile", "fixtures/projects/rails-3/Gemfile.lock", "fixtures/projects/rails-3/lib", "fixtures/projects/rails-3/lib/tasks", "fixtures/projects/rails-3/log", "fixtures/projects/rails-3/log/development.log", "fixtures/projects/rails-3/log/production.log", "fixtures/projects/rails-3/log/server.log", "fixtures/projects/rails-3/log/test.log", "fixtures/projects/rails-3/public", "fixtures/projects/rails-3/public/404.html", "fixtures/projects/rails-3/public/422.html", "fixtures/projects/rails-3/public/500.html", "fixtures/projects/rails-3/public/favicon.ico", "fixtures/projects/rails-3/public/images", "fixtures/projects/rails-3/public/images/rails.png", "fixtures/projects/rails-3/public/index.html", "fixtures/projects/rails-3/public/javascripts", "fixtures/projects/rails-3/public/javascripts/application.js", "fixtures/projects/rails-3/public/javascripts/controls.js", "fixtures/projects/rails-3/public/javascripts/dragdrop.js", "fixtures/projects/rails-3/public/javascripts/effects.js", "fixtures/projects/rails-3/public/javascripts/prototype.js", "fixtures/projects/rails-3/public/javascripts/rails.js", "fixtures/projects/rails-3/public/robots.txt", "fixtures/projects/rails-3/public/stylesheets", "fixtures/projects/rails-3/Rakefile", "fixtures/projects/rails-3/README", "fixtures/projects/rails-3/script", "fixtures/projects/rails-3/script/rails", "fixtures/projects/rails-3/test", "fixtures/projects/rails-3/test/fixtures", "fixtures/projects/rails-3/test/functional", "fixtures/projects/rails-3/test/integration", "fixtures/projects/rails-3/test/performance", "fixtures/projects/rails-3/test/performance/browsing_test.rb", "fixtures/projects/rails-3/test/test_helper.rb", "fixtures/projects/rails-3/test/unit", "fixtures/projects/rails-3/vendor", "fixtures/projects/rails-3/vendor/plugins", "fixtures/projects/ruby", "fixtures/projects/ruby/Gemfile", "fixtures/projects/ruby/Gemfile.lock", "fixtures/projects/ruby/Rakefile", "Gemfile", "Gemfile.lock", "hudson.gemspec", "lib", "lib/hudson", "lib/hudson/api.rb", "lib/hudson/cli", "lib/hudson/cli/formatting.rb", "lib/hudson/cli.rb", "lib/hudson/config.rb", "lib/hudson/core_ext", "lib/hudson/core_ext/object", "lib/hudson/core_ext/object/blank.rb", "lib/hudson/hudson-cli.jar", "lib/hudson/hudson.war", "lib/hudson/hudson_version.rb", "lib/hudson/job_config_builder.rb", "lib/hudson/plugins", "lib/hudson/plugins/git.hpi", "lib/hudson/plugins/github.hpi", "lib/hudson/plugins/greenballs.hpi", "lib/hudson/plugins/rake.hpi", "lib/hudson/plugins/ruby.hpi", "lib/hudson/project_scm.rb", "lib/hudson/remote.rb", "lib/hudson/version.rb", "lib/hudson.rb", "Rakefile", "README.md", "spec", "spec/fixtures", "spec/fixtures/ec2_global.config.xml", "spec/fixtures/rails.multi.config.xml", "spec/fixtures/rails.single.config.triggers.xml", "spec/fixtures/rails.single.config.xml", "spec/fixtures/ruby.single.config.xml", "spec/fixtures/rubygem.config.xml", "spec/fixtures/therubyracer.config.xml", "spec/job_config_builder_spec.rb", "spec/spec_helper.rb", "tasks", "tasks/upgrade.rake"]
|
15
15
|
s.homepage = %q{http://github.com/cowboyd/hudson.rb}
|
16
16
|
s.require_paths = ["lib"]
|
17
17
|
s.rubyforge_project = %q{hudson}
|
data/lib/hudson/api.rb
CHANGED
@@ -155,12 +155,18 @@ module Hudson
|
|
155
155
|
false
|
156
156
|
end
|
157
157
|
end
|
158
|
+
|
159
|
+
def self.delete_node(name)
|
160
|
+
post_plain("#{base_uri}/computer/#{CGI::escape(name).gsub('+', '%20')}/doDelete/api/json")
|
161
|
+
end
|
158
162
|
|
163
|
+
# Helper for POST that don't barf at Hudson's crappy API responses
|
159
164
|
def self.post_plain(path, options = {})
|
160
165
|
uri = URI.parse base_uri
|
161
166
|
res = Net::HTTP.start(uri.host, uri.port) { |http| http.post(path, options) }
|
162
167
|
end
|
163
168
|
|
169
|
+
# Helper for GET that don't barf at Hudson's crappy API responses
|
164
170
|
def self.get_plain(path, options = {})
|
165
171
|
uri = URI.parse base_uri
|
166
172
|
res = Net::HTTP.start(uri.host, uri.port) { |http| http.get(path, options) }
|
@@ -2,18 +2,23 @@ require "builder"
|
|
2
2
|
|
3
3
|
module Hudson
|
4
4
|
class JobConfigBuilder
|
5
|
-
attr_accessor :scm, :git_branches, :public_scm
|
6
5
|
attr_accessor :job_type, :matrix_project
|
6
|
+
attr_accessor :steps
|
7
|
+
attr_accessor :scm, :public_scm, :git_branches, :git_tool
|
7
8
|
attr_accessor :assigned_node
|
8
9
|
|
9
10
|
InvalidTemplate = Class.new(StandardError)
|
10
11
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
12
|
+
# +job_type+ - template of default steps to create with the job
|
13
|
+
# +steps+ - array of [:method, cmd], e.g. [:build_shell_step, "bundle initial"]
|
14
|
+
# - Default is based on +job_type+.
|
15
|
+
# +scm+ - URL to the repository. Currently only support git URLs.
|
16
|
+
# +public_scm+ - convert the +scm+ URL to a publicly accessible URL for the Hudson job config.
|
17
|
+
# +git_branches+ - array of branches to run builds. Default: ['master']
|
18
|
+
# +git_tool+ - key reference for Hudson CI git command. Default: 'Default'
|
19
|
+
# +assigned_node+ - restrict this job to running on slaves with these labels (space separated)
|
20
|
+
def initialize(job_type = :ruby, &block)
|
21
|
+
self.job_type = job_type.to_s if job_type
|
17
22
|
|
18
23
|
yield self
|
19
24
|
|
@@ -95,7 +100,7 @@ module Hudson
|
|
95
100
|
b.clean false
|
96
101
|
b.wipeOutWorkspace false
|
97
102
|
b.buildChooser :class => "hudson.plugins.git.util.DefaultBuildChooser"
|
98
|
-
b.gitTool "Default"
|
103
|
+
b.gitTool git_tool ? git_tool : "Default"
|
99
104
|
b.submoduleCfg :class => "list"
|
100
105
|
b.relativeTargetDir
|
101
106
|
b.excludedRegions
|
@@ -128,22 +133,29 @@ module Hudson
|
|
128
133
|
VALID_JOB_TEMPLATES = %w[rails rails3 ruby rubygem]
|
129
134
|
def build_steps(b)
|
130
135
|
b.builders do
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
136
|
+
if job_type
|
137
|
+
raise InvalidTemplate unless VALID_JOB_TEMPLATES.include?(job_type)
|
138
|
+
if job_type == "rails" || job_type == "rails3"
|
139
|
+
build_shell_step b, "bundle install"
|
140
|
+
build_ruby_step b, <<-RUBY.gsub(/^ /, '')
|
141
|
+
unless File.exist?("config/database.yml")
|
142
|
+
require 'fileutils'
|
143
|
+
example = Dir["config/database*"].first
|
144
|
+
puts "Using \#{example} for config/database.yml"
|
145
|
+
FileUtils.cp example, "config/database.yml"
|
146
|
+
end
|
147
|
+
RUBY
|
148
|
+
build_shell_step b, "bundle exec rake db:schema:load"
|
149
|
+
build_shell_step b, "bundle exec rake"
|
150
|
+
else
|
151
|
+
build_shell_step b, "bundle install"
|
152
|
+
build_shell_step b, "bundle exec rake"
|
140
153
|
end
|
141
|
-
RUBY
|
142
|
-
build_shell_step b, "bundle exec rake db:schema:load"
|
143
|
-
build_shell_step b, "bundle exec rake"
|
144
154
|
else
|
145
|
-
|
146
|
-
|
155
|
+
steps.each do |step|
|
156
|
+
method, cmd = step
|
157
|
+
send(method.to_sym, b, cmd)
|
158
|
+
end
|
147
159
|
end
|
148
160
|
end
|
149
161
|
end
|
data/lib/hudson/version.rb
CHANGED
@@ -0,0 +1,58 @@
|
|
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
|
+
<concurrentBuild>false</concurrentBuild>
|
48
|
+
<builders>
|
49
|
+
<hudson.tasks.Shell>
|
50
|
+
<command>bundle install</command>
|
51
|
+
</hudson.tasks.Shell>
|
52
|
+
<hudson.tasks.Shell>
|
53
|
+
<command>bundle exec rake</command>
|
54
|
+
</hudson.tasks.Shell>
|
55
|
+
</builders>
|
56
|
+
<publishers/>
|
57
|
+
<buildWrappers/>
|
58
|
+
</project>
|
@@ -3,11 +3,26 @@ require File.dirname(__FILE__) + "/spec_helper"
|
|
3
3
|
describe Hudson::JobConfigBuilder do
|
4
4
|
include ConfigFixtureLoaders
|
5
5
|
|
6
|
-
describe "
|
6
|
+
describe "explicit steps to match a ruby job" do
|
7
|
+
before do
|
8
|
+
@config = Hudson::JobConfigBuilder.new do |c|
|
9
|
+
c.scm = "git://codebasehq.com/mocra/misc/mocra-web.git"
|
10
|
+
c.steps = [
|
11
|
+
[:build_shell_step, "bundle install"],
|
12
|
+
[:build_shell_step, "bundle exec rake"]
|
13
|
+
]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
it "builds config.xml" do
|
17
|
+
config_xml("ruby", "single").should == @config.to_xml
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
|
22
|
+
describe "rails job; single axis" do
|
7
23
|
before do
|
8
24
|
@config = Hudson::JobConfigBuilder.new(:rails) do |c|
|
9
25
|
c.scm = "git://codebasehq.com/mocra/misc/mocra-web.git"
|
10
|
-
c.git_branches = %w[master]
|
11
26
|
end
|
12
27
|
end
|
13
28
|
it "builds config.xml" do
|
@@ -15,7 +30,9 @@ describe Hudson::JobConfigBuilder do
|
|
15
30
|
end
|
16
31
|
end
|
17
32
|
|
18
|
-
|
33
|
+
|
34
|
+
|
35
|
+
describe "rubygem job; single axis" do
|
19
36
|
before do
|
20
37
|
@config = Hudson::JobConfigBuilder.new(:rubygem) do |c|
|
21
38
|
c.scm = "http://github.com/drnic/picasa_plucker.git"
|
@@ -53,7 +70,6 @@ describe Hudson::JobConfigBuilder do
|
|
53
70
|
before do
|
54
71
|
@config = Hudson::JobConfigBuilder.new(:rails) do |c|
|
55
72
|
c.scm = "git@codebasehq.com:mocra/misc/mocra-web.git"
|
56
|
-
c.git_branches = %w[master]
|
57
73
|
c.public_scm = true
|
58
74
|
end
|
59
75
|
end
|
@@ -62,4 +78,17 @@ describe Hudson::JobConfigBuilder do
|
|
62
78
|
end
|
63
79
|
end
|
64
80
|
|
81
|
+
describe "select specific git cmd" do
|
82
|
+
before do
|
83
|
+
@config = Hudson::JobConfigBuilder.new(:rails) do |c|
|
84
|
+
c.scm = "git://codebasehq.com/mocra/misc/mocra-web.git"
|
85
|
+
c.git_tool = "xyz"
|
86
|
+
c.steps = []
|
87
|
+
end
|
88
|
+
end
|
89
|
+
it "builds config.xml" do
|
90
|
+
Hpricot.XML(@config.to_xml).search("gitTool").size.should == 1
|
91
|
+
Hpricot.XML(@config.to_xml).search("gitTool").text.should == "xyz"
|
92
|
+
end
|
93
|
+
end
|
65
94
|
end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hudson
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 62196365
|
5
5
|
prerelease: true
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
9
|
- 0
|
10
10
|
- beta
|
11
|
-
-
|
12
|
-
version: 0.3.0.beta.
|
11
|
+
- 15
|
12
|
+
version: 0.3.0.beta.15
|
13
13
|
platform: ruby
|
14
14
|
authors:
|
15
15
|
- Charles Lowell
|
@@ -18,7 +18,7 @@ autorequire:
|
|
18
18
|
bindir: bin
|
19
19
|
cert_chain: []
|
20
20
|
|
21
|
-
date: 2010-11-
|
21
|
+
date: 2010-11-02 00:00:00 -07:00
|
22
22
|
default_executable:
|
23
23
|
dependencies:
|
24
24
|
- !ruby/object:Gem::Dependency
|
@@ -293,6 +293,7 @@ files:
|
|
293
293
|
- spec/fixtures/rails.multi.config.xml
|
294
294
|
- spec/fixtures/rails.single.config.triggers.xml
|
295
295
|
- spec/fixtures/rails.single.config.xml
|
296
|
+
- spec/fixtures/ruby.single.config.xml
|
296
297
|
- spec/fixtures/rubygem.config.xml
|
297
298
|
- spec/fixtures/therubyracer.config.xml
|
298
299
|
- spec/job_config_builder_spec.rb
|