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 +3 -1
- data/README.md +1 -1
- data/Rakefile +1 -1
- data/bin/jenkins +1 -3
- data/cucumber.yml +8 -0
- data/features/build_details.feature +3 -3
- data/features/configure.feature +36 -0
- data/features/default_host.feature +11 -4
- data/features/manage_jobs.feature +6 -0
- data/fixtures/projects/erlang/rebar.config +1 -0
- data/lib/jenkins/api.rb +32 -18
- data/lib/jenkins/cli.rb +27 -9
- data/lib/jenkins/job_config_builder.rb +6 -1
- data/lib/jenkins/version.rb +1 -1
- data/spec/fixtures/erlang.single.config.xml +59 -0
- data/spec/job_config_builder_spec.rb +13 -0
- metadata +20 -16
data/.gitignore
CHANGED
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
|
-
`
|
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
|
|
data/bin/jenkins
CHANGED
data/cucumber.yml
ADDED
@@ -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
|
-
"
|
31
|
+
"number":1
|
32
32
|
"""
|
33
33
|
And I should see
|
34
34
|
"""
|
35
|
-
"actions":[
|
35
|
+
"actions":[
|
36
36
|
"""
|
37
37
|
And I should see
|
38
38
|
"""
|
39
|
-
"
|
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 "
|
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
|
data/lib/jenkins/api.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
data/lib/jenkins/cli.rb
CHANGED
@@ -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,
|
15
|
-
method_option :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
|
data/lib/jenkins/version.rb
CHANGED
@@ -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:
|
4
|
+
hash: 13
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 6
|
9
|
-
-
|
10
|
-
version: 0.6.
|
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-
|
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.
|
339
|
+
rubygems_version: 1.6.2
|
336
340
|
signing_key:
|
337
341
|
specification_version: 3
|
338
342
|
summary: Painless Continuous Integration with Jenkins Server
|