jenkins 0.6.4 → 0.6.5

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -3,4 +3,6 @@ tmp
3
3
  var
4
4
  *.rbc
5
5
  .bundle
6
- pkg/
6
+ pkg/
7
+ *.swp
8
+ .rvmrc
data/README.md CHANGED
@@ -58,7 +58,7 @@ To add Jobs/Projects (create a Job) on a Jenkins server:
58
58
 
59
59
  Usage: jenkins create PROJECT_PATH [options]
60
60
  --public-scm use public scm URL
61
- --template [ruby] template of job steps (available: rails,rails3,ruby,rubygem)
61
+ --template [ruby] template of job steps (available: rails,rails3,ruby,rubygem,erlang)
62
62
  --assigned-node [ASSIGNED-NODE] only use slave nodes with this label
63
63
  --override override if job exists
64
64
  --no-build create job without initial build
data/Rakefile CHANGED
@@ -62,7 +62,7 @@ namespace :jenkins do
62
62
  logfile = File.expand_path("../var/jenkins/test.log", __FILE__)
63
63
  puts "Launching jenkins test server at http://localhost:#{port}..."
64
64
  puts " output will be logged to #{logfile}"
65
- `ruby bin/jenkins server --home #{File.dirname(plugin_dir)} --port #{port} --control #{control} --daemon --logfile #{logfile}`
65
+ `bundle exec bin/jenkins server --home #{File.dirname(plugin_dir)} --port #{port} --control #{control} --daemon --logfile #{logfile}`
66
66
  end
67
67
  end
68
68
 
@@ -1,7 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
- require 'rubygems'
3
- $:.unshift(File.expand_path(File.dirname(File.dirname(__FILE__) + "/../lib/jenkins.rb")))
4
- require File.expand_path(File.dirname(__FILE__) + '/../lib/jenkins')
2
+ require 'jenkins'
5
3
  require 'jenkins/cli'
6
4
 
7
5
  begin
@@ -0,0 +1,8 @@
1
+ <%
2
+ rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
3
+ rerun_opts = rerun.to_s.strip.empty? ? "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
4
+ std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} --strict --tags ~@wip"
5
+ %>
6
+ default: --drb <%= std_opts %> features
7
+ wip: --drb --tags @wip:3 --wip features
8
+ rerun: --drb <%= rerun_opts %> --format rerun --out rerun.txt --strict --tags ~@wip
@@ -28,15 +28,15 @@ Feature: Show build details
28
28
  When I run local executable "jenkins" with arguments "build_details ruby 1 --host localhost --port 3010 --json"
29
29
  Then I should see
30
30
  """
31
- "builtOn":"","result":"FAILURE","number":1,"keepLog":false,
31
+ "number":1
32
32
  """
33
33
  And I should see
34
34
  """
35
- "actions":[{"causes":[{"userName":"anonymous","shortDescription":"Started by user anonymous"},{"userName":"anonymous","shortDescription":"Started by user anonymous"}]}],
35
+ "actions":[
36
36
  """
37
37
  And I should see
38
38
  """
39
- "description":null,"changeSet":{"kind":null,"items":[]},"fullDisplayName":"ruby #1"
39
+ "changeSet":{
40
40
  """
41
41
 
42
42
 
@@ -0,0 +1,36 @@
1
+ Feature: Configure host connection information
2
+
3
+ Scenario: Configure host connection information and check default host and reconfigure
4
+ Given I run local executable "jenkins" with arguments "configure --host localhost --port 3010"
5
+ When I run local executable "jenkins" with arguments "default_host"
6
+ Then I should see exactly
7
+ """
8
+ http://localhost:3010
9
+ """
10
+ Given I run local executable "jenkins" with arguments "configure --host localhost --port 3010 --ssl"
11
+ When I run local executable "jenkins" with arguments "default_host"
12
+ Then I should see exactly
13
+ """
14
+ https://localhost:3010
15
+ """
16
+
17
+ Scenario: Configure host connection authentication information and check auth_info and reconfigure
18
+ Given I run local executable "jenkins" with arguments "auth_info"
19
+ Then I should see exactly
20
+ """
21
+ """
22
+ When I run local executable "jenkins" with arguments "configure --username jenkins --password sniknej"
23
+ And I run local executable "jenkins" with arguments "auth_info"
24
+ Then I should see exactly
25
+ """
26
+ username: jenkins
27
+ password: sniknej
28
+ """
29
+ When I run local executable "jenkins" with arguments "configure --username jenkins1 --password 1sniknej"
30
+ And I run local executable "jenkins" with arguments "auth_info"
31
+ Then I should see exactly
32
+ """
33
+ username: jenkins1
34
+ password: 1sniknej
35
+ """
36
+
@@ -1,19 +1,26 @@
1
1
  Feature: Display default host information
2
2
 
3
3
  Scenario: Display default host information if it is setup
4
- Given I run local executable "jenkins" with arguments "list --host localhost --port 3010"
4
+ Given I run local executable "jenkins" with arguments "configure --host localhost --port 3010"
5
5
  When I run local executable "jenkins" with arguments "default_host"
6
6
  Then I should see exactly
7
7
  """
8
8
  http://localhost:3010
9
9
  """
10
10
 
11
+ Scenario: Display default secure host information if it is setup
12
+ Given I run local executable "jenkins" with arguments "configure --host localhost --port 3010 --ssl"
13
+ When I run local executable "jenkins" with arguments "default_host"
14
+ Then I should see exactly
15
+ """
16
+ https://localhost:3010
17
+ """
18
+
11
19
  Scenario: Display warning if never used Jenkins.rb before
12
20
  When I run local executable "jenkins" with arguments "default_host"
13
21
  Then I should see exactly
14
22
  """
15
23
  ERROR: Either use --host or add remote servers.
16
24
  """
17
-
18
-
19
-
25
+
26
+
@@ -151,6 +151,12 @@ Feature: Create and manage jobs
151
151
  When I run local executable "jenkins" with arguments "create . --template rails3 --host localhost --port 3010"
152
152
  Then I should see "Added rails3 project 'rails-3' to Jenkins."
153
153
 
154
+ Scenario: Select 'erlang' project type (jenkins create --template erlang)
155
+ Given I am in the "erlang" project folder
156
+ And the project uses "git" scm
157
+ When I run local executable "jenkins" with arguments "create . --template erlang --host localhost --port 3010"
158
+ Then I should see "Added erlang project 'erlang' to Jenkins."
159
+
154
160
  Scenario: Create job without default steps (jenkins create --no-template)
155
161
  Given I am in the "non-bundler" project folder
156
162
  And the project uses "git" scm
@@ -0,0 +1 @@
1
+ % important erlang business here
@@ -13,18 +13,20 @@ module Jenkins
13
13
  headers 'content-type' => 'application/json'
14
14
  format :json
15
15
  # http_proxy 'localhost', '8888'
16
-
16
+
17
17
  JobAlreadyExistsError = Class.new(Exception)
18
18
 
19
19
  def self.setup_base_url(options)
20
20
  options = options.with_clean_keys
21
21
  # Thor's HashWithIndifferentAccess is based on string keys which URI::HTTP.build ignores
22
22
  options = options.inject({}) { |mem, (key, val)| mem[key.to_sym] = val; mem }
23
+ options = setup_authentication(options)
23
24
  options[:host] ||= ENV['JENKINS_HOST']
24
25
  options[:port] ||= ENV['JENKINS_PORT']
25
26
  options[:port] &&= options[:port].to_i
26
27
  return false unless options[:host] || Jenkins::Config.config["base_uri"]
27
- uri = options[:host] ? URI::HTTP.build(options) : Jenkins::Config.config["base_uri"]
28
+ uri_class = options.delete(:ssl) ? URI::HTTPS : URI::HTTP
29
+ uri = options[:host] ? uri_class.build(options) : Jenkins::Config.config["base_uri"]
28
30
  base_uri uri.to_s
29
31
  uri
30
32
  end
@@ -45,7 +47,7 @@ module Jenkins
45
47
  :body => job_config.to_xml, :format => :xml, :headers => { 'content-type' => 'application/xml' }
46
48
  }
47
49
  if res.code.to_i == 200
48
- cache_base_uri
50
+ cache_configuration!
49
51
  true
50
52
  else
51
53
  require "hpricot"
@@ -66,13 +68,13 @@ module Jenkins
66
68
  raise JobAlreadyExistsError.new(name)
67
69
  end
68
70
  end
69
-
71
+
70
72
  # Attempts to delete a job +name+
71
73
  def self.delete_job(name)
72
74
  res = post_plain "#{job_url name}/doDelete"
73
75
  res.code.to_i == 302
74
76
  end
75
-
77
+
76
78
  def self.build_job(name)
77
79
  res = get_plain "/job/#{name}/build"
78
80
  res.code.to_i == 302
@@ -80,10 +82,10 @@ module Jenkins
80
82
 
81
83
  def self.summary
82
84
  json = get "/api/json"
83
- cache_base_uri
85
+ cache_configuration!
84
86
  json
85
87
  end
86
-
88
+
87
89
  def self.job_names
88
90
  summary["jobs"].map {|job| job["name"]}
89
91
  end
@@ -92,7 +94,7 @@ module Jenkins
92
94
  def self.job(name)
93
95
  begin
94
96
  json = get "/job/#{name}/api/json"
95
- cache_base_uri
97
+ cache_configuration!
96
98
  json
97
99
  rescue Crack::ParseError
98
100
  false
@@ -103,7 +105,7 @@ module Jenkins
103
105
  def self.build_details(job_name, build_number)
104
106
  begin
105
107
  json = get "/job/#{job_name}/#{build_number}/api/json"
106
- cache_base_uri
108
+ cache_configuration!
107
109
  json
108
110
  rescue Crack::ParseError
109
111
  false
@@ -112,7 +114,7 @@ module Jenkins
112
114
 
113
115
  def self.nodes
114
116
  json = get "/computer/api/json"
115
- cache_base_uri
117
+ cache_configuration!
116
118
  json
117
119
  end
118
120
 
@@ -142,7 +144,7 @@ module Jenkins
142
144
  )
143
145
  end
144
146
  options = default_options.merge(options)
145
-
147
+
146
148
  slave_host = options[:slave_host]
147
149
  name = options[:name] || slave_host
148
150
  labels = options[:labels].split(/\s*,\s*/).join(' ') if options[:labels]
@@ -198,7 +200,7 @@ module Jenkins
198
200
  false
199
201
  end
200
202
  end
201
-
203
+
202
204
  def self.delete_node(name)
203
205
  post_plain("#{base_uri}/computer/#{CGI::escape(name).gsub('+', '%20')}/doDelete/api/json")
204
206
  end
@@ -207,7 +209,7 @@ module Jenkins
207
209
  def self.post_plain(path, data = "", options = {})
208
210
  options = options.with_clean_keys
209
211
  uri = URI.parse base_uri
210
- res = Net::HTTP.start(uri.host, uri.port) do |http|
212
+ res = Net::HTTP.start(uri.host, uri.port) do |http|
211
213
  if RUBY_VERSION =~ /1.8/
212
214
  http.post(path, options)
213
215
  else
@@ -215,20 +217,32 @@ module Jenkins
215
217
  end
216
218
  end
217
219
  end
218
-
220
+
219
221
  # Helper for GET that don't barf at Jenkins's crappy API responses
220
222
  def self.get_plain(path, options = {})
221
223
  options = options.with_clean_keys
222
224
  uri = URI.parse base_uri
223
225
  res = Net::HTTP.start(uri.host, uri.port) { |http| http.get(path, options) }
224
226
  end
225
-
226
- private
227
- def self.cache_base_uri
227
+
228
+ def self.cache_configuration!
228
229
  Jenkins::Config.config["base_uri"] = base_uri
230
+ Jenkins::Config.config["basic_auth"] = default_options[:basic_auth]
229
231
  Jenkins::Config.store!
230
232
  end
231
-
233
+
234
+ private
235
+ def self.setup_authentication(options)
236
+ username, password = options.delete(:username), options.delete(:password)
237
+ if username && password
238
+ basic_auth username, password
239
+ elsif Jenkins::Config.config["basic_auth"]
240
+ basic_auth Jenkins::Config.config["basic_auth"]["username"],
241
+ Jenkins::Config.config["basic_auth"]["password"]
242
+ end
243
+ options
244
+ end
245
+
232
246
  def self.job_url(name)
233
247
  "#{base_uri}/job/#{name}"
234
248
  end
@@ -11,8 +11,11 @@ module Jenkins
11
11
  map "-v" => :version, "--version" => :version, "-h" => :help, "--help" => :help
12
12
 
13
13
  def self.common_options
14
- method_option :host, :desc => 'connect to jenkins server on this host'
15
- method_option :port, :desc => 'connect to jenkins server on this port'
14
+ method_option :host, :desc => 'connect to jenkins server on this host'
15
+ method_option :port, :desc => 'connect to jenkins server on this port'
16
+ method_option :ssl, :desc => 'connect to jenkins server with ssl', :type => :boolean, :default => false
17
+ method_option :username, :desc => 'connect to jenkins server with username'
18
+ method_option :password, :desc => 'connect to jenkins server with password'
16
19
  end
17
20
 
18
21
  desc "server [options]", "run a jenkins server"
@@ -50,7 +53,7 @@ module Jenkins
50
53
  unless scm = Jenkins::ProjectScm.discover(options[:scm])
51
54
  error "Cannot determine project SCM. Currently supported: #{Jenkins::ProjectScm.supported}"
52
55
  end
53
- unless (options[:template] == "none" || options[:"no-template"]) || File.exists?("Gemfile")
56
+ unless (options[:template] == "none" || options[:template] == "erlang" || options[:"no-template"]) || File.exists?("Gemfile")
54
57
  error "Ruby/Rails projects without a Gemfile are currently unsupported."
55
58
  end
56
59
  begin
@@ -86,7 +89,7 @@ module Jenkins
86
89
  end
87
90
  end
88
91
  end
89
-
92
+
90
93
  desc "build [PROJECT_PATH]", "trigger build of this project's build job"
91
94
  common_options
92
95
  def build(project_path = ".")
@@ -100,7 +103,7 @@ module Jenkins
100
103
  end
101
104
  end
102
105
  end
103
-
106
+
104
107
  desc "remove PROJECT_PATH", "remove this project's build job from Jenkins"
105
108
  common_options
106
109
  def remove(project_path)
@@ -114,7 +117,7 @@ module Jenkins
114
117
  end
115
118
  end
116
119
  end
117
-
120
+
118
121
  desc "job NAME", "Display job details"
119
122
  method_option :hash, :desc => 'Dump as formatted Ruby hash format'
120
123
  method_option :json, :desc => 'Dump as JSON format'
@@ -193,7 +196,7 @@ module Jenkins
193
196
  shell.say node["displayName"], color
194
197
  end
195
198
  end
196
-
199
+
197
200
  desc "add_node SLAVE_HOST", "add a URI (user@host:port) server as a slave node"
198
201
  method_option :labels, :desc => 'Labels for a job --assigned_node to match against to select a slave (comma separated)'
199
202
  method_option :"slave-user", :desc => 'SSH user for Jenkins to connect to slave node (default: deploy)'
@@ -211,7 +214,7 @@ module Jenkins
211
214
  error "Failed to add slave node #{slave_host}"
212
215
  end
213
216
  end
214
-
217
+
215
218
  desc "default_host", "display current default host:port URI"
216
219
  def default_host
217
220
  if select_jenkins_server({})
@@ -221,6 +224,21 @@ module Jenkins
221
224
  end
222
225
  end
223
226
 
227
+ desc "configure", "configure host connection information"
228
+ common_options
229
+ def configure
230
+ Jenkins::Api.setup_base_url(options)
231
+ Jenkins::Api.cache_configuration!
232
+ end
233
+
234
+ desc "auth_info", "display authentication information"
235
+ def auth_info
236
+ if auth = Jenkins::Config.config['basic_auth']
237
+ shell.say "username: #{auth["username"]}"
238
+ shell.say "password: #{auth["password"]}"
239
+ end
240
+ end
241
+
224
242
  desc "help [command]", "show help for jenkins or for a specific command"
225
243
  def help(*args)
226
244
  super(*args)
@@ -265,7 +283,7 @@ USEAGE
265
283
  shell.say "ERROR: #{text}", :red
266
284
  exit
267
285
  end
268
-
286
+
269
287
  def cmd
270
288
  ENV['CUCUMBER_RUNNING'] ? 'jenkins' : $0
271
289
  end
@@ -11,7 +11,7 @@ module Jenkins
11
11
 
12
12
  InvalidTemplate = Class.new(StandardError)
13
13
 
14
- VALID_JOB_TEMPLATES = %w[none rails rails3 ruby rubygem]
14
+ VALID_JOB_TEMPLATES = %w[none rails rails3 ruby rubygem erlang]
15
15
 
16
16
  # +job_type+ - template of default steps to create with the job
17
17
  # +steps+ - array of [:method, cmd], e.g. [:build_shell_step, "bundle initial"]
@@ -216,6 +216,11 @@ module Jenkins
216
216
  [:build_shell_step, "bundle install"],
217
217
  [:build_shell_step, "bundle exec rake"]
218
218
  ]
219
+ when :erlang
220
+ [
221
+ [:build_shell_step, "rebar compile"],
222
+ [:build_shell_step, "rebar ct"]
223
+ ]
219
224
  else
220
225
  [ [:build_shell_step, 'echo "THERE ARE NO STEPS! Except this one..."'] ]
221
226
  end
@@ -1,3 +1,3 @@
1
1
  module Jenkins
2
- VERSION = "0.6.4"
2
+ VERSION = "0.6.5"
3
3
  end
@@ -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>
@@ -134,4 +134,17 @@ describe Jenkins::JobConfigBuilder do
134
134
  Hpricot.XML(@config.to_xml).search("buildWrappers").to_s.should == xml_bite.strip
135
135
  end
136
136
  end
137
+
138
+ describe "erlang job; single axis" do
139
+ before do
140
+ @config = Jenkins::JobConfigBuilder.new(:erlang) do |c|
141
+ c.scm = "git://codebasehq.com/mocra/misc/mocra-web.git"
142
+ end
143
+ end
144
+ it "builds config.xml" do
145
+ config_xml("erlang", "single").should == @config.to_xml
146
+ end
147
+ end
148
+
149
+
137
150
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jenkins
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
4
+ hash: 13
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 6
9
- - 4
10
- version: 0.6.4
9
+ - 5
10
+ version: 0.6.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Charles Lowell
@@ -16,13 +16,12 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-04-13 00:00:00 -07:00
19
+ date: 2011-05-26 00:00:00 -05:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
23
23
  name: term-ansicolor
24
24
  prerelease: false
25
- type: :runtime
26
25
  requirement: &id001 !ruby/object:Gem::Requirement
27
26
  none: false
28
27
  requirements:
@@ -34,11 +33,11 @@ dependencies:
34
33
  - 0
35
34
  - 4
36
35
  version: 1.0.4
36
+ type: :runtime
37
37
  version_requirements: *id001
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: httparty
40
40
  prerelease: false
41
- type: :runtime
42
41
  requirement: &id002 !ruby/object:Gem::Requirement
43
42
  none: false
44
43
  requirements:
@@ -50,11 +49,11 @@ dependencies:
50
49
  - 6
51
50
  - 1
52
51
  version: 0.6.1
52
+ type: :runtime
53
53
  version_requirements: *id002
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: builder
56
56
  prerelease: false
57
- type: :runtime
58
57
  requirement: &id003 !ruby/object:Gem::Requirement
59
58
  none: false
60
59
  requirements:
@@ -66,11 +65,11 @@ dependencies:
66
65
  - 1
67
66
  - 2
68
67
  version: 2.1.2
68
+ type: :runtime
69
69
  version_requirements: *id003
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: thor
72
72
  prerelease: false
73
- type: :runtime
74
73
  requirement: &id004 !ruby/object:Gem::Requirement
75
74
  none: false
76
75
  requirements:
@@ -82,11 +81,11 @@ dependencies:
82
81
  - 14
83
82
  - 2
84
83
  version: 0.14.2
84
+ type: :runtime
85
85
  version_requirements: *id004
86
86
  - !ruby/object:Gem::Dependency
87
87
  name: hpricot
88
88
  prerelease: false
89
- type: :runtime
90
89
  requirement: &id005 !ruby/object:Gem::Requirement
91
90
  none: false
92
91
  requirements:
@@ -96,11 +95,11 @@ dependencies:
96
95
  segments:
97
96
  - 0
98
97
  version: "0"
98
+ type: :runtime
99
99
  version_requirements: *id005
100
100
  - !ruby/object:Gem::Dependency
101
101
  name: json_pure
102
102
  prerelease: false
103
- type: :runtime
104
103
  requirement: &id006 !ruby/object:Gem::Requirement
105
104
  none: false
106
105
  requirements:
@@ -112,11 +111,11 @@ dependencies:
112
111
  - 5
113
112
  - 1
114
113
  version: 1.5.1
114
+ type: :runtime
115
115
  version_requirements: *id006
116
116
  - !ruby/object:Gem::Dependency
117
117
  name: jenkins-war
118
118
  prerelease: false
119
- type: :development
120
119
  requirement: &id007 !ruby/object:Gem::Requirement
121
120
  none: false
122
121
  requirements:
@@ -127,11 +126,11 @@ dependencies:
127
126
  - 1
128
127
  - 396
129
128
  version: "1.396"
129
+ type: :development
130
130
  version_requirements: *id007
131
131
  - !ruby/object:Gem::Dependency
132
132
  name: rake
133
133
  prerelease: false
134
- type: :development
135
134
  requirement: &id008 !ruby/object:Gem::Requirement
136
135
  none: false
137
136
  requirements:
@@ -143,11 +142,11 @@ dependencies:
143
142
  - 8
144
143
  - 7
145
144
  version: 0.8.7
145
+ type: :development
146
146
  version_requirements: *id008
147
147
  - !ruby/object:Gem::Dependency
148
148
  name: cucumber
149
149
  prerelease: false
150
- type: :development
151
150
  requirement: &id009 !ruby/object:Gem::Requirement
152
151
  none: false
153
152
  requirements:
@@ -159,11 +158,11 @@ dependencies:
159
158
  - 10
160
159
  - 0
161
160
  version: 0.10.0
161
+ type: :development
162
162
  version_requirements: *id009
163
163
  - !ruby/object:Gem::Dependency
164
164
  name: rspec
165
165
  prerelease: false
166
- type: :development
167
166
  requirement: &id010 !ruby/object:Gem::Requirement
168
167
  none: false
169
168
  requirements:
@@ -175,11 +174,11 @@ dependencies:
175
174
  - 0
176
175
  - 0
177
176
  version: 2.0.0
177
+ type: :development
178
178
  version_requirements: *id010
179
179
  - !ruby/object:Gem::Dependency
180
180
  name: awesome_print
181
181
  prerelease: false
182
- type: :development
183
182
  requirement: &id011 !ruby/object:Gem::Requirement
184
183
  none: false
185
184
  requirements:
@@ -189,6 +188,7 @@ dependencies:
189
188
  segments:
190
189
  - 0
191
190
  version: "0"
191
+ type: :development
192
192
  version_requirements: *id011
193
193
  description: A suite of utilities for bringing continous integration to your projects (not the other way around) with jenkins CI
194
194
  email:
@@ -208,7 +208,9 @@ files:
208
208
  - README.md
209
209
  - Rakefile
210
210
  - bin/jenkins
211
+ - cucumber.yml
211
212
  - features/build_details.feature
213
+ - features/configure.feature
212
214
  - features/default_host.feature
213
215
  - features/development.feature
214
216
  - features/launch_server.feature
@@ -230,6 +232,7 @@ files:
230
232
  - fixtures/jenkins/greenballs.hpi
231
233
  - fixtures/jenkins/rake.hpi
232
234
  - fixtures/jenkins/ruby.hpi
235
+ - fixtures/projects/erlang/rebar.config
233
236
  - fixtures/projects/non-bundler/Rakefile
234
237
  - fixtures/projects/rails-3/.gitignore
235
238
  - fixtures/projects/rails-3/Gemfile
@@ -292,6 +295,7 @@ files:
292
295
  - lib/jenkins/remote.rb
293
296
  - lib/jenkins/version.rb
294
297
  - spec/fixtures/ec2_global.config.xml
298
+ - spec/fixtures/erlang.single.config.xml
295
299
  - spec/fixtures/rails.multi.config.xml
296
300
  - spec/fixtures/rails.single.config.triggers.xml
297
301
  - spec/fixtures/rails.single.config.xml
@@ -332,7 +336,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
332
336
  requirements: []
333
337
 
334
338
  rubyforge_project: jenkins
335
- rubygems_version: 1.6.0
339
+ rubygems_version: 1.6.2
336
340
  signing_key:
337
341
  specification_version: 3
338
342
  summary: Painless Continuous Integration with Jenkins Server