jenkins 0.6.4 → 0.6.5
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 +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
|