hudson 0.3.1 → 0.5.0
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/.gitignore +4 -0
- data/Changelog.md +24 -0
- data/Gemfile.lock +1 -1
- data/Rakefile +4 -50
- data/features/default_host.feature +19 -0
- data/features/development.feature +2 -2
- data/features/launch_server.feature +1 -0
- data/features/manage_jobs.feature +109 -1
- data/features/manage_slave_nodes.feature +39 -4
- data/features/step_definitions/common_steps.rb +6 -0
- data/features/step_definitions/hudson_steps.rb +13 -2
- data/features/support/hudson_helpers.rb +6 -0
- data/hudson.gemspec +26 -56
- data/lib/hudson.rb +1 -1
- data/lib/hudson/api.rb +38 -24
- data/lib/hudson/cli.rb +81 -49
- data/lib/hudson/installation.rb +136 -0
- data/lib/hudson/job_config_builder.rb +68 -21
- data/lib/hudson/project_scm.rb +3 -3
- data/lib/hudson/version.rb +1 -1
- data/spec/fixtures/rails.single.config.xml +1 -0
- data/spec/fixtures/ruby.multi-ruby-multi-labels.config.xml +84 -0
- data/spec/fixtures/{rubygem.config.xml → ruby.multi.config.xml} +18 -1
- data/spec/job_config_builder_spec.rb +47 -11
- metadata +41 -93
- data/fixtures/projects/non-bundler/Rakefile +0 -4
- data/fixtures/projects/rails-3/Gemfile +0 -30
- data/fixtures/projects/rails-3/Gemfile.lock +0 -74
- data/fixtures/projects/rails-3/README +0 -256
- data/fixtures/projects/rails-3/Rakefile +0 -7
- data/fixtures/projects/rails-3/app/controllers/application_controller.rb +0 -3
- data/fixtures/projects/rails-3/app/helpers/application_helper.rb +0 -2
- data/fixtures/projects/rails-3/app/views/layouts/application.html.erb +0 -14
- data/fixtures/projects/rails-3/config.ru +0 -4
- data/fixtures/projects/rails-3/config/application.rb +0 -42
- data/fixtures/projects/rails-3/config/boot.rb +0 -13
- data/fixtures/projects/rails-3/config/database.yml +0 -22
- data/fixtures/projects/rails-3/config/environment.rb +0 -5
- data/fixtures/projects/rails-3/config/environments/development.rb +0 -26
- data/fixtures/projects/rails-3/config/environments/production.rb +0 -49
- data/fixtures/projects/rails-3/config/environments/test.rb +0 -35
- data/fixtures/projects/rails-3/config/initializers/backtrace_silencers.rb +0 -7
- data/fixtures/projects/rails-3/config/initializers/inflections.rb +0 -10
- data/fixtures/projects/rails-3/config/initializers/mime_types.rb +0 -5
- data/fixtures/projects/rails-3/config/initializers/secret_token.rb +0 -7
- data/fixtures/projects/rails-3/config/initializers/session_store.rb +0 -8
- data/fixtures/projects/rails-3/config/locales/en.yml +0 -5
- data/fixtures/projects/rails-3/config/routes.rb +0 -58
- data/fixtures/projects/rails-3/db/seeds.rb +0 -7
- data/fixtures/projects/rails-3/doc/README_FOR_APP +0 -2
- data/fixtures/projects/rails-3/log/development.log +0 -0
- data/fixtures/projects/rails-3/log/production.log +0 -0
- data/fixtures/projects/rails-3/log/server.log +0 -0
- data/fixtures/projects/rails-3/log/test.log +0 -0
- data/fixtures/projects/rails-3/public/404.html +0 -26
- data/fixtures/projects/rails-3/public/422.html +0 -26
- data/fixtures/projects/rails-3/public/500.html +0 -26
- 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 +0 -239
- data/fixtures/projects/rails-3/public/javascripts/application.js +0 -2
- data/fixtures/projects/rails-3/public/javascripts/controls.js +0 -965
- data/fixtures/projects/rails-3/public/javascripts/dragdrop.js +0 -974
- data/fixtures/projects/rails-3/public/javascripts/effects.js +0 -1123
- data/fixtures/projects/rails-3/public/javascripts/prototype.js +0 -6001
- data/fixtures/projects/rails-3/public/javascripts/rails.js +0 -175
- data/fixtures/projects/rails-3/public/robots.txt +0 -5
- data/fixtures/projects/rails-3/script/rails +0 -6
- data/fixtures/projects/rails-3/test/performance/browsing_test.rb +0 -9
- data/fixtures/projects/rails-3/test/test_helper.rb +0 -13
- data/fixtures/projects/ruby/Gemfile +0 -3
- data/fixtures/projects/ruby/Gemfile.lock +0 -10
- data/fixtures/projects/ruby/Rakefile +0 -4
- data/lib/hudson/hudson.war +0 -0
- data/lib/hudson/hudson_version.rb +0 -4
- data/lib/hudson/plugins/envfile.hpi +0 -0
- data/lib/hudson/plugins/git.hpi +0 -0
- data/lib/hudson/plugins/github.hpi +0 -0
- data/lib/hudson/plugins/greenballs.hpi +0 -0
- data/lib/hudson/plugins/rake.hpi +0 -0
- data/lib/hudson/plugins/ruby.hpi +0 -0
- data/tasks/upgrade.rake +0 -83
data/.gitignore
ADDED
data/Changelog.md
CHANGED
@@ -1,5 +1,29 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 0.5.0 - 2010/12/1
|
4
|
+
|
5
|
+
* hudson warfile no longer bundled with hudson gem
|
6
|
+
* rubygem is now 235K instead of 31M!
|
7
|
+
* upgrade hudson server and related plugins without requiring a new gem release
|
8
|
+
* hudson gem now fully drinks the bundler koolaid.
|
9
|
+
* hudson create
|
10
|
+
* --node-labels 'ubuntu,gentoo' - run tests against multiple slave nodes by their label
|
11
|
+
* --no-template - do not generate any default steps (well, a silly one)
|
12
|
+
* hudson add_node
|
13
|
+
* --vagrant - provide alternate default values when adding nodes if the node is a Vagrant VM
|
14
|
+
* hudson default_host
|
15
|
+
* NEW - displays the current default host:port URI
|
16
|
+
|
17
|
+
## 0.4.0 - 2010/11/11
|
18
|
+
|
19
|
+
* hudson create
|
20
|
+
* --rubies '1.8.7,1.9.2,rbx-head,jruby' - uses RVM and Hudson's Axes support to run tests within different Ruby environments
|
21
|
+
* --scm git://some-alternate.com/repo.git - can override the "origin" URI
|
22
|
+
* --scm-branches 'master,other,branches' - specify which branches can be pulled from to trigger tests
|
23
|
+
|
24
|
+
* hudson job
|
25
|
+
* Can dump information/status about a job
|
26
|
+
|
3
27
|
## 0.3.1 - 2010/11/8
|
4
28
|
|
5
29
|
* fixed error in the rails3 template's test for schema.rb
|
data/Gemfile.lock
CHANGED
data/Rakefile
CHANGED
@@ -1,52 +1,5 @@
|
|
1
|
-
require '
|
2
|
-
|
3
|
-
|
4
|
-
$:.unshift('lib')
|
5
|
-
require 'hudson'
|
6
|
-
|
7
|
-
Gem::Specification.new do |s|
|
8
|
-
$gemspec = s
|
9
|
-
s.name = s.rubyforge_project = "hudson"
|
10
|
-
s.version = Hudson::VERSION
|
11
|
-
s.summary = "Painless Continuous Integration with Hudson Server"
|
12
|
-
s.description = "A suite of utilities for bringing continous integration to your projects (not the other way around) with hudson CI"
|
13
|
-
s.email = ["cowboyd@thefrontside.net", "drnicwilliams@gmail.com"]
|
14
|
-
s.homepage = "http://github.com/cowboyd/hudson.rb"
|
15
|
-
s.authors = ["Charles Lowell", "Dr Nic Williams"]
|
16
|
-
s.executables = ["hudson"]
|
17
|
-
s.require_paths = ["lib"]
|
18
|
-
s.files = Rake::FileList.new("**/*").tap do |manifest|
|
19
|
-
manifest.exclude "tmp", "**/*.gem"
|
20
|
-
end.to_a
|
21
|
-
s.add_dependency("term-ansicolor", [">= 1.0.4"])
|
22
|
-
s.add_dependency("yajl-ruby", [">= 0.7.6"])
|
23
|
-
s.add_dependency("httparty", ["~> 0.6.1"])
|
24
|
-
s.add_dependency("builder", ["~> 2.1.2"])
|
25
|
-
s.add_dependency("thor", ["~> 0.14.2"])
|
26
|
-
s.add_dependency("hpricot")
|
27
|
-
s.add_development_dependency("rake", ["~> 0.8.7"])
|
28
|
-
s.add_development_dependency("cucumber", ["~> 0.9.0"])
|
29
|
-
s.add_development_dependency("rspec", ["~> 2.0.0"])
|
30
|
-
s.add_development_dependency("json", ["~>1.4.0"])
|
31
|
-
s.add_development_dependency("awesome_print")
|
32
|
-
end
|
33
|
-
|
34
|
-
desc "Build gem"
|
35
|
-
task :gem => :gemspec do
|
36
|
-
Gem::Builder.new($gemspec).build
|
37
|
-
end
|
38
|
-
|
39
|
-
desc "Build gemspec"
|
40
|
-
task :gemspec => :clean do
|
41
|
-
File.open("#{$gemspec.name}.gemspec", "w") do |f|
|
42
|
-
f.write($gemspec.to_ruby)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
desc "Clean up"
|
47
|
-
task :clean do
|
48
|
-
sh "rm -rf *.gem"
|
49
|
-
end
|
1
|
+
require 'bundler'
|
2
|
+
Bundler::GemHelper.install_tasks
|
50
3
|
|
51
4
|
require "rspec/core/rake_task"
|
52
5
|
RSpec::Core::RakeTask.new(:spec)
|
@@ -68,6 +21,7 @@ task :cucumber => 'cucumber:ok'
|
|
68
21
|
desc "Start test server; Run cucumber:ok; Kill Test Server;"
|
69
22
|
task :default => [:spec, "hudson:server:killtest", "hudson:server:test"] do
|
70
23
|
require 'socket'
|
24
|
+
require 'net/http'
|
71
25
|
print "waiting for at most 30 seconds for the server to start"
|
72
26
|
tries = 1
|
73
27
|
begin
|
@@ -100,7 +54,7 @@ namespace :hudson do
|
|
100
54
|
task :test do
|
101
55
|
port = 3010
|
102
56
|
control = 3011
|
103
|
-
|
57
|
+
ENV['HUDSON_STOCK'] = File.expand_path(File.dirname(__FILE__) + "/fixtures/hudson")
|
104
58
|
FileUtils.chdir(File.dirname(__FILE__)) do
|
105
59
|
logfile = File.join("/tmp", "test_hudson.log")
|
106
60
|
puts "Launching hudson test server at http://localhost:#{port}..."
|
@@ -0,0 +1,19 @@
|
|
1
|
+
Feature: Display default host information
|
2
|
+
|
3
|
+
Scenario: Display default host information if it is setup
|
4
|
+
Given I run local executable "hudson" with arguments "list --host localhost --port 3010"
|
5
|
+
When I run local executable "hudson" with arguments "default_host"
|
6
|
+
Then I should see exactly
|
7
|
+
"""
|
8
|
+
http://localhost:3010
|
9
|
+
"""
|
10
|
+
|
11
|
+
Scenario: Display warning if never used Hudson.rb before
|
12
|
+
When I run local executable "hudson" with arguments "default_host"
|
13
|
+
Then I should see exactly
|
14
|
+
"""
|
15
|
+
ERROR: Either use --host or add remote servers.
|
16
|
+
"""
|
17
|
+
|
18
|
+
|
19
|
+
|
@@ -7,8 +7,8 @@ Feature: Development processes of hudson itself (rake tasks)
|
|
7
7
|
Scenario: Generate RubyGem
|
8
8
|
Given this project is active project folder
|
9
9
|
When I invoke task "rake clean" so that I start with nothing
|
10
|
-
And I invoke task "rake
|
11
|
-
Then file with name matching "hudson-*.gem" is created
|
10
|
+
And I invoke task "rake build"
|
11
|
+
Then file with name matching "pkg/hudson-*.gem" is created
|
12
12
|
And file with name matching "hudson.gemspec" is created
|
13
13
|
And the file "hudson.gemspec" is a valid gemspec
|
14
14
|
|
@@ -6,6 +6,7 @@ Feature: Running a Hudson Server
|
|
6
6
|
Scenario: Start a Hudson Server (hudson server)
|
7
7
|
Given env variable $HOME set to project path "home"
|
8
8
|
And "home/.hudson" folder is deleted
|
9
|
+
And hudson is using a stock warfile
|
9
10
|
And there is nothing listening on port 5001
|
10
11
|
And there is nothing listening on port 5002
|
11
12
|
And I cleanup any hudson processes with control port 5002
|
@@ -1,4 +1,4 @@
|
|
1
|
-
Feature: Create jobs
|
1
|
+
Feature: Create and manage jobs
|
2
2
|
In order to reduce cost of getting a new project up onto Hudson
|
3
3
|
As a project developer
|
4
4
|
I want to add a new project to Hudson as a job
|
@@ -44,6 +44,100 @@ Feature: Create jobs
|
|
44
44
|
CLI: hudson build ruby
|
45
45
|
"""
|
46
46
|
|
47
|
+
Scenario: Setup hudson job with explicit scm url/branches (hudson create --scm URI --scm-branches='master,other')
|
48
|
+
Given I am in the "ruby" project folder
|
49
|
+
And the project uses "git" scm
|
50
|
+
When I run local executable "hudson" with arguments "create . --scm git://localhost/myapp.git --scm-branches 'master,other' --host localhost --port 3010"
|
51
|
+
Then I should see "Added ruby project 'ruby' to Hudson."
|
52
|
+
And the job "ruby" config "scm" should be:
|
53
|
+
"""
|
54
|
+
<scm class="hudson.plugins.git.GitSCM">
|
55
|
+
<configVersion>1</configVersion>
|
56
|
+
<remoteRepositories>
|
57
|
+
<org.spearce.jgit.transport.RemoteConfig>
|
58
|
+
<string>origin</string>
|
59
|
+
<int>5</int>
|
60
|
+
<string>fetch</string>
|
61
|
+
<string>+refs/heads/*:refs/remotes/origin/*</string>
|
62
|
+
<string>receivepack</string>
|
63
|
+
<string>git-upload-pack</string>
|
64
|
+
<string>uploadpack</string>
|
65
|
+
<string>git-upload-pack</string>
|
66
|
+
<string>url</string>
|
67
|
+
<string>git://localhost/myapp.git</string>
|
68
|
+
<string>tagopt</string>
|
69
|
+
<string></string>
|
70
|
+
</org.spearce.jgit.transport.RemoteConfig>
|
71
|
+
</remoteRepositories>
|
72
|
+
<branches>
|
73
|
+
<hudson.plugins.git.BranchSpec>
|
74
|
+
<name>master</name>
|
75
|
+
</hudson.plugins.git.BranchSpec>
|
76
|
+
<hudson.plugins.git.BranchSpec>
|
77
|
+
<name>other</name>
|
78
|
+
</hudson.plugins.git.BranchSpec>
|
79
|
+
</branches>
|
80
|
+
<localBranch></localBranch>
|
81
|
+
<mergeOptions />
|
82
|
+
<recursiveSubmodules>false</recursiveSubmodules>
|
83
|
+
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
|
84
|
+
<authorOrCommitter>false</authorOrCommitter>
|
85
|
+
<clean>false</clean>
|
86
|
+
<wipeOutWorkspace>false</wipeOutWorkspace>
|
87
|
+
<buildChooser class="hudson.plugins.git.util.DefaultBuildChooser" />
|
88
|
+
<gitTool>Default</gitTool>
|
89
|
+
<submoduleCfg class="list" />
|
90
|
+
<relativeTargetDir></relativeTargetDir>
|
91
|
+
<excludedRegions></excludedRegions>
|
92
|
+
<excludedUsers></excludedUsers>
|
93
|
+
</scm>
|
94
|
+
"""
|
95
|
+
|
96
|
+
Scenario: Setup hudson job with multiple rubies (hudson create --rubies '1.8.7,rbx-head,jruby')
|
97
|
+
Given I am in the "ruby" project folder
|
98
|
+
And the project uses "git" scm
|
99
|
+
When I run local executable "hudson" with arguments "create . --rubies '1.8.7,rbx-head,jruby' --host localhost --port 3010"
|
100
|
+
Then I should see "Added ruby project 'ruby' to Hudson."
|
101
|
+
And the job "ruby" config "axes" should be:
|
102
|
+
"""
|
103
|
+
<axes>
|
104
|
+
<hudson.matrix.TextAxis>
|
105
|
+
<name>RUBY_VERSION</name>
|
106
|
+
<values>
|
107
|
+
<string>1.8.7</string>
|
108
|
+
<string>rbx-head</string>
|
109
|
+
<string>jruby</string>
|
110
|
+
</values>
|
111
|
+
</hudson.matrix.TextAxis>
|
112
|
+
</axes>
|
113
|
+
"""
|
114
|
+
|
115
|
+
Scenario: Setup hudson job with multiple rubies and multiple nodes (hudson create --rubies.. --node_labels..)
|
116
|
+
Given I am in the "ruby" project folder
|
117
|
+
And the project uses "git" scm
|
118
|
+
When I run local executable "hudson" with arguments "create . --rubies '1.8.7,rbx-head,jruby' --node-labels '1.8.7,ubuntu' --host localhost --port 3010"
|
119
|
+
Then I should see "Added ruby project 'ruby' to Hudson."
|
120
|
+
And the job "ruby" config "axes" should be:
|
121
|
+
"""
|
122
|
+
<axes>
|
123
|
+
<hudson.matrix.TextAxis>
|
124
|
+
<name>RUBY_VERSION</name>
|
125
|
+
<values>
|
126
|
+
<string>1.8.7</string>
|
127
|
+
<string>rbx-head</string>
|
128
|
+
<string>jruby</string>
|
129
|
+
</values>
|
130
|
+
</hudson.matrix.TextAxis>
|
131
|
+
<hudson.matrix.LabelAxis>
|
132
|
+
<name>label</name>
|
133
|
+
<values>
|
134
|
+
<string>1.8.7</string>
|
135
|
+
<string>ubuntu</string>
|
136
|
+
</values>
|
137
|
+
</hudson.matrix.LabelAxis>
|
138
|
+
</axes>
|
139
|
+
"""
|
140
|
+
|
47
141
|
Scenario: Setup hudson job for a specific node label (hudson create --assigned_node)
|
48
142
|
Given I am in the "ruby" project folder
|
49
143
|
And the project uses "git" scm
|
@@ -56,6 +150,20 @@ Feature: Create jobs
|
|
56
150
|
When I run local executable "hudson" with arguments "create . --template rails3 --host localhost --port 3010"
|
57
151
|
Then I should see "Added rails3 project 'rails-3' to Hudson."
|
58
152
|
|
153
|
+
Scenario: Create job without default steps (hudson create --no-template)
|
154
|
+
Given I am in the "non-bundler" project folder
|
155
|
+
And the project uses "git" scm
|
156
|
+
When I run local executable "hudson" with arguments "create . --no-template --host localhost --port 3010"
|
157
|
+
Then I should see "Added project 'non-bundler' to Hudson."
|
158
|
+
And the job "non-bundler" config "builders" should be:
|
159
|
+
"""
|
160
|
+
<builders>
|
161
|
+
<hudson.tasks.Shell>
|
162
|
+
<command>echo "THERE ARE NO STEPS! Except this one..."</command>
|
163
|
+
</hudson.tasks.Shell>
|
164
|
+
</builders>
|
165
|
+
"""
|
166
|
+
|
59
167
|
Scenario: Reject projects that don't use bundler (hudson create)
|
60
168
|
Given I am in the "non-bundler" project folder
|
61
169
|
And the project uses "git" scm
|
@@ -26,12 +26,12 @@ Feature: Adding slave nodes
|
|
26
26
|
"""
|
27
27
|
|
28
28
|
Scenario: Add slave via CLI with name defaulted to URL (hudson add_node)
|
29
|
-
When I run local executable "hudson" with arguments "add_node foo1.bar.com --slave-user deploy --
|
29
|
+
When I run local executable "hudson" with arguments "add_node foo1.bar.com --slave-user deploy --labels 'app1,app2'"
|
30
30
|
Then I should see exactly
|
31
31
|
"""
|
32
|
-
Added slave node foo1.bar.com
|
32
|
+
Added slave node 'foo1.bar.com' to foo1.bar.com
|
33
33
|
"""
|
34
|
-
When I run local executable "hudson" with arguments "add_node foo1.bar.com --slave-user deploy --
|
34
|
+
When I run local executable "hudson" with arguments "add_node foo1.bar.com --slave-user deploy --labels 'app1,app2'"
|
35
35
|
Then I should see exactly
|
36
36
|
"""
|
37
37
|
Slave called 'foo1.bar.com' already exists
|
@@ -42,4 +42,39 @@ Feature: Adding slave nodes
|
|
42
42
|
"""
|
43
43
|
master
|
44
44
|
foo1.bar.com
|
45
|
-
"""
|
45
|
+
"""
|
46
|
+
|
47
|
+
Scenario: Add a local Vagrant/VirtualBox VM as a slave (hudson add_node --vagrant)
|
48
|
+
Given I am in the "rails-3" project folder
|
49
|
+
When I run local executable "hudson" with arguments "add_node localhost --name rails-3 --vagrant --labels 'app1,app2'"
|
50
|
+
Then I should see exactly
|
51
|
+
"""
|
52
|
+
Added slave node 'rails-3' to localhost
|
53
|
+
"""
|
54
|
+
When I run local executable "hudson" with arguments "nodes"
|
55
|
+
Then I should see exactly
|
56
|
+
"""
|
57
|
+
master
|
58
|
+
rails-3
|
59
|
+
"""
|
60
|
+
And the Hudson config "slaves" should be:
|
61
|
+
"""
|
62
|
+
<slaves>
|
63
|
+
<slave>
|
64
|
+
<name>rails-3</name>
|
65
|
+
<description>Automatically created by Hudson.rb</description>
|
66
|
+
<remoteFS>/vagrant/tmp/hudson-slave/</remoteFS>
|
67
|
+
<numExecutors>2</numExecutors>
|
68
|
+
<mode>EXCLUSIVE</mode>
|
69
|
+
<retentionStrategy class="hudson.slaves.RetentionStrategy$Always" />
|
70
|
+
<launcher class="hudson.plugins.sshslaves.SSHLauncher">
|
71
|
+
<host>localhost</host>
|
72
|
+
<port>2222</port>
|
73
|
+
<username>vagrant</username>
|
74
|
+
<privatekey>/Library/Ruby/Gems/1.8/gems/vagrant-0.6.7/keys/vagrant</privatekey>
|
75
|
+
</launcher>
|
76
|
+
<label>app1 app2</label>
|
77
|
+
<nodeProperties />
|
78
|
+
</slave>
|
79
|
+
</slaves>
|
80
|
+
"""
|
@@ -1,3 +1,9 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
Given /^hudson is using a stock warfile$/ do
|
4
|
+
ENV['HUDSON_STOCK'] = File.expand_path(File.dirname(__FILE__) + '/../../fixtures/hudson')
|
5
|
+
end
|
6
|
+
|
1
7
|
Given /^this project is active project folder/ do
|
2
8
|
@active_project_folder = File.expand_path(File.dirname(__FILE__) + "/../..")
|
3
9
|
end
|
@@ -5,8 +5,7 @@ Given /^I have a Hudson server running$/ do
|
|
5
5
|
res = Net::HTTP.start("localhost", port) { |http| http.get('/api/json') }
|
6
6
|
Hudson::Api.base_uri "http://localhost:#{port}"
|
7
7
|
rescue Errno::ECONNREFUSED => e
|
8
|
-
|
9
|
-
exit
|
8
|
+
raise Exception, "To run tests, launch hudson in test mode: 'rake hudson:server:test'"
|
10
9
|
end
|
11
10
|
@hudson_port = port.to_s
|
12
11
|
@hudson_host = 'localhost'
|
@@ -89,5 +88,17 @@ When /^I (re|)create a job$/ do |override|
|
|
89
88
|
CUCUMBER
|
90
89
|
end
|
91
90
|
|
91
|
+
Then /^the job "([^"]*)" config "([^"]*)" should be:$/ do |job_name, xpath, string|
|
92
|
+
raise "Cannot yet fetch XML config from non-localhost Hudson" unless Hudson::Api.base_uri =~ /localhost/
|
93
|
+
require "hpricot"
|
94
|
+
config = Hpricot.XML(File.read("#{test_hudson_path}/jobs/#{job_name}/config.xml"))
|
95
|
+
config.search(xpath).to_s.should == string
|
96
|
+
end
|
92
97
|
|
98
|
+
Then /^the Hudson config "([^"]*)" should be:$/ do |xpath, string|
|
99
|
+
raise "Cannot yet fetch XML config from non-localhost Hudson" unless Hudson::Api.base_uri =~ /localhost/
|
100
|
+
require "hpricot"
|
101
|
+
config = Hpricot.XML(File.read("#{test_hudson_path}/config.xml"))
|
102
|
+
config.search(xpath).to_s.should == string
|
103
|
+
end
|
93
104
|
|
data/hudson.gemspec
CHANGED
@@ -1,63 +1,33 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "hudson/version"
|
2
4
|
|
3
5
|
Gem::Specification.new do |s|
|
4
|
-
s.name
|
5
|
-
s.version
|
6
|
-
|
7
|
-
s.
|
8
|
-
s.
|
9
|
-
s.
|
10
|
-
s.
|
6
|
+
s.name = "hudson"
|
7
|
+
s.version = Hudson::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Charles Lowell", "Nic Williams"]
|
10
|
+
s.email = ["cowboyd@thefrontside.net", "drnicwilliams@gmail.com"]
|
11
|
+
s.homepage = "http://github.com/cowboyd/hudson.rb"
|
12
|
+
s.summary = %q{Painless Continuous Integration with Hudson Server}
|
11
13
|
s.description = %q{A suite of utilities for bringing continous integration to your projects (not the other way around) with hudson CI}
|
12
|
-
s.email = ["cowboyd@thefrontside.net", "drnicwilliams@gmail.com"]
|
13
|
-
s.executables = ["hudson"]
|
14
|
-
s.files = ["bin", "bin/hudson", "Changelog.md", "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/hash.rb", "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/envfile.hpi", "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/hash_key_cleaner_spec.rb", "spec/job_config_builder_spec.rb", "spec/spec_helper.rb", "tasks", "tasks/upgrade.rake"]
|
15
|
-
s.homepage = %q{http://github.com/cowboyd/hudson.rb}
|
16
|
-
s.require_paths = ["lib"]
|
17
|
-
s.rubyforge_project = %q{hudson}
|
18
|
-
s.rubygems_version = %q{1.3.7}
|
19
|
-
s.summary = %q{Painless Continuous Integration with Hudson Server}
|
20
14
|
|
21
|
-
|
22
|
-
|
23
|
-
|
15
|
+
s.rubyforge_project = "hudson"
|
16
|
+
|
17
|
+
s.files = `git ls-files -x fixtures`.split("\n").reject {|f| f =~ /^fixtures/}
|
18
|
+
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
|
+
s.require_paths = ["lib"]
|
24
21
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
s.add_development_dependency(%q<awesome_print>, [">= 0"])
|
37
|
-
else
|
38
|
-
s.add_dependency(%q<term-ansicolor>, [">= 1.0.4"])
|
39
|
-
s.add_dependency(%q<yajl-ruby>, [">= 0.7.6"])
|
40
|
-
s.add_dependency(%q<httparty>, ["~> 0.6.1"])
|
41
|
-
s.add_dependency(%q<builder>, ["~> 2.1.2"])
|
42
|
-
s.add_dependency(%q<thor>, ["~> 0.14.2"])
|
43
|
-
s.add_dependency(%q<hpricot>, [">= 0"])
|
44
|
-
s.add_dependency(%q<rake>, ["~> 0.8.7"])
|
45
|
-
s.add_dependency(%q<cucumber>, ["~> 0.9.0"])
|
46
|
-
s.add_dependency(%q<rspec>, ["~> 2.0.0"])
|
47
|
-
s.add_dependency(%q<json>, ["~> 1.4.0"])
|
48
|
-
s.add_dependency(%q<awesome_print>, [">= 0"])
|
49
|
-
end
|
50
|
-
else
|
51
|
-
s.add_dependency(%q<term-ansicolor>, [">= 1.0.4"])
|
52
|
-
s.add_dependency(%q<yajl-ruby>, [">= 0.7.6"])
|
53
|
-
s.add_dependency(%q<httparty>, ["~> 0.6.1"])
|
54
|
-
s.add_dependency(%q<builder>, ["~> 2.1.2"])
|
55
|
-
s.add_dependency(%q<thor>, ["~> 0.14.2"])
|
56
|
-
s.add_dependency(%q<hpricot>, [">= 0"])
|
57
|
-
s.add_dependency(%q<rake>, ["~> 0.8.7"])
|
58
|
-
s.add_dependency(%q<cucumber>, ["~> 0.9.0"])
|
59
|
-
s.add_dependency(%q<rspec>, ["~> 2.0.0"])
|
60
|
-
s.add_dependency(%q<json>, ["~> 1.4.0"])
|
61
|
-
s.add_dependency(%q<awesome_print>, [">= 0"])
|
62
|
-
end
|
22
|
+
s.add_dependency("term-ansicolor", [">= 1.0.4"])
|
23
|
+
s.add_dependency("yajl-ruby", [">= 0.7.6"])
|
24
|
+
s.add_dependency("httparty", ["~> 0.6.1"])
|
25
|
+
s.add_dependency("builder", ["~> 2.1.2"])
|
26
|
+
s.add_dependency("thor", ["~> 0.14.2"])
|
27
|
+
s.add_dependency("hpricot")
|
28
|
+
s.add_development_dependency("rake", ["~> 0.8.7"])
|
29
|
+
s.add_development_dependency("cucumber", ["~> 0.9.0"])
|
30
|
+
s.add_development_dependency("rspec", ["~> 2.0.0"])
|
31
|
+
s.add_development_dependency("json", ["~>1.4.0"])
|
32
|
+
s.add_development_dependency("awesome_print")
|
63
33
|
end
|