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.
Files changed (82) hide show
  1. data/.gitignore +4 -0
  2. data/Changelog.md +24 -0
  3. data/Gemfile.lock +1 -1
  4. data/Rakefile +4 -50
  5. data/features/default_host.feature +19 -0
  6. data/features/development.feature +2 -2
  7. data/features/launch_server.feature +1 -0
  8. data/features/manage_jobs.feature +109 -1
  9. data/features/manage_slave_nodes.feature +39 -4
  10. data/features/step_definitions/common_steps.rb +6 -0
  11. data/features/step_definitions/hudson_steps.rb +13 -2
  12. data/features/support/hudson_helpers.rb +6 -0
  13. data/hudson.gemspec +26 -56
  14. data/lib/hudson.rb +1 -1
  15. data/lib/hudson/api.rb +38 -24
  16. data/lib/hudson/cli.rb +81 -49
  17. data/lib/hudson/installation.rb +136 -0
  18. data/lib/hudson/job_config_builder.rb +68 -21
  19. data/lib/hudson/project_scm.rb +3 -3
  20. data/lib/hudson/version.rb +1 -1
  21. data/spec/fixtures/rails.single.config.xml +1 -0
  22. data/spec/fixtures/ruby.multi-ruby-multi-labels.config.xml +84 -0
  23. data/spec/fixtures/{rubygem.config.xml → ruby.multi.config.xml} +18 -1
  24. data/spec/job_config_builder_spec.rb +47 -11
  25. metadata +41 -93
  26. data/fixtures/projects/non-bundler/Rakefile +0 -4
  27. data/fixtures/projects/rails-3/Gemfile +0 -30
  28. data/fixtures/projects/rails-3/Gemfile.lock +0 -74
  29. data/fixtures/projects/rails-3/README +0 -256
  30. data/fixtures/projects/rails-3/Rakefile +0 -7
  31. data/fixtures/projects/rails-3/app/controllers/application_controller.rb +0 -3
  32. data/fixtures/projects/rails-3/app/helpers/application_helper.rb +0 -2
  33. data/fixtures/projects/rails-3/app/views/layouts/application.html.erb +0 -14
  34. data/fixtures/projects/rails-3/config.ru +0 -4
  35. data/fixtures/projects/rails-3/config/application.rb +0 -42
  36. data/fixtures/projects/rails-3/config/boot.rb +0 -13
  37. data/fixtures/projects/rails-3/config/database.yml +0 -22
  38. data/fixtures/projects/rails-3/config/environment.rb +0 -5
  39. data/fixtures/projects/rails-3/config/environments/development.rb +0 -26
  40. data/fixtures/projects/rails-3/config/environments/production.rb +0 -49
  41. data/fixtures/projects/rails-3/config/environments/test.rb +0 -35
  42. data/fixtures/projects/rails-3/config/initializers/backtrace_silencers.rb +0 -7
  43. data/fixtures/projects/rails-3/config/initializers/inflections.rb +0 -10
  44. data/fixtures/projects/rails-3/config/initializers/mime_types.rb +0 -5
  45. data/fixtures/projects/rails-3/config/initializers/secret_token.rb +0 -7
  46. data/fixtures/projects/rails-3/config/initializers/session_store.rb +0 -8
  47. data/fixtures/projects/rails-3/config/locales/en.yml +0 -5
  48. data/fixtures/projects/rails-3/config/routes.rb +0 -58
  49. data/fixtures/projects/rails-3/db/seeds.rb +0 -7
  50. data/fixtures/projects/rails-3/doc/README_FOR_APP +0 -2
  51. data/fixtures/projects/rails-3/log/development.log +0 -0
  52. data/fixtures/projects/rails-3/log/production.log +0 -0
  53. data/fixtures/projects/rails-3/log/server.log +0 -0
  54. data/fixtures/projects/rails-3/log/test.log +0 -0
  55. data/fixtures/projects/rails-3/public/404.html +0 -26
  56. data/fixtures/projects/rails-3/public/422.html +0 -26
  57. data/fixtures/projects/rails-3/public/500.html +0 -26
  58. data/fixtures/projects/rails-3/public/favicon.ico +0 -0
  59. data/fixtures/projects/rails-3/public/images/rails.png +0 -0
  60. data/fixtures/projects/rails-3/public/index.html +0 -239
  61. data/fixtures/projects/rails-3/public/javascripts/application.js +0 -2
  62. data/fixtures/projects/rails-3/public/javascripts/controls.js +0 -965
  63. data/fixtures/projects/rails-3/public/javascripts/dragdrop.js +0 -974
  64. data/fixtures/projects/rails-3/public/javascripts/effects.js +0 -1123
  65. data/fixtures/projects/rails-3/public/javascripts/prototype.js +0 -6001
  66. data/fixtures/projects/rails-3/public/javascripts/rails.js +0 -175
  67. data/fixtures/projects/rails-3/public/robots.txt +0 -5
  68. data/fixtures/projects/rails-3/script/rails +0 -6
  69. data/fixtures/projects/rails-3/test/performance/browsing_test.rb +0 -9
  70. data/fixtures/projects/rails-3/test/test_helper.rb +0 -13
  71. data/fixtures/projects/ruby/Gemfile +0 -3
  72. data/fixtures/projects/ruby/Gemfile.lock +0 -10
  73. data/fixtures/projects/ruby/Rakefile +0 -4
  74. data/lib/hudson/hudson.war +0 -0
  75. data/lib/hudson/hudson_version.rb +0 -4
  76. data/lib/hudson/plugins/envfile.hpi +0 -0
  77. data/lib/hudson/plugins/git.hpi +0 -0
  78. data/lib/hudson/plugins/github.hpi +0 -0
  79. data/lib/hudson/plugins/greenballs.hpi +0 -0
  80. data/lib/hudson/plugins/rake.hpi +0 -0
  81. data/lib/hudson/plugins/ruby.hpi +0 -0
  82. data/tasks/upgrade.rake +0 -83
@@ -0,0 +1,4 @@
1
+ hudson-*.gem
2
+ tmp
3
+ *.rbc
4
+ .bundle
@@ -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
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- hudson (0.3.1)
4
+ hudson (0.5.0)
5
5
  builder (~> 2.1.2)
6
6
  hpricot
7
7
  httparty (~> 0.6.1)
data/Rakefile CHANGED
@@ -1,52 +1,5 @@
1
- require 'rubygems'
2
- require 'bundler/setup'
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 gem"
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 &quot;THERE ARE NO STEPS! Except this one...&quot;</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 --label 'app1 app2' --host localhost --port 3010"
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 --label 'app1 app2' --host localhost --port 3010"
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
- puts "\n\n\nERROR: To run tests, launch hudson in test mode: 'rake hudson:server:test'\n\n\n"
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
 
@@ -0,0 +1,6 @@
1
+ module HudsonHelper
2
+ def test_hudson_path
3
+ "/tmp/test_hudson"
4
+ end
5
+ end
6
+ World(HudsonHelper)
@@ -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 = %q{hudson}
5
- s.version = "0.3.1"
6
-
7
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
- s.authors = ["Charles Lowell", "Dr Nic Williams"]
9
- s.date = %q{2010-11-08}
10
- s.default_executable = %q{hudson}
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
- if s.respond_to? :specification_version then
22
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
23
- s.specification_version = 3
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
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
26
- s.add_runtime_dependency(%q<term-ansicolor>, [">= 1.0.4"])
27
- s.add_runtime_dependency(%q<yajl-ruby>, [">= 0.7.6"])
28
- s.add_runtime_dependency(%q<httparty>, ["~> 0.6.1"])
29
- s.add_runtime_dependency(%q<builder>, ["~> 2.1.2"])
30
- s.add_runtime_dependency(%q<thor>, ["~> 0.14.2"])
31
- s.add_runtime_dependency(%q<hpricot>, [">= 0"])
32
- s.add_development_dependency(%q<rake>, ["~> 0.8.7"])
33
- s.add_development_dependency(%q<cucumber>, ["~> 0.9.0"])
34
- s.add_development_dependency(%q<rspec>, ["~> 2.0.0"])
35
- s.add_development_dependency(%q<json>, ["~> 1.4.0"])
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