testbot 0.4.5 → 0.4.6
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/CHANGELOG +4 -0
- data/README.markdown +1 -1
- data/lib/runner.rb +3 -38
- data/lib/runner/job.rb +36 -0
- data/lib/testbot.rb +1 -1
- metadata +4 -3
data/CHANGELOG
CHANGED
data/README.markdown
CHANGED
@@ -68,7 +68,7 @@ Using testbot with Rails 3:
|
|
68
68
|
|
69
69
|
Using testbot with Rails 2:
|
70
70
|
|
71
|
-
ruby script/plugin install git://github.com/joakimk/testbot.git -r 'refs/tags/v0.4.
|
71
|
+
ruby script/plugin install git://github.com/joakimk/testbot.git -r 'refs/tags/v0.4.6'
|
72
72
|
script/generate testbot --connect 192.168.0.100
|
73
73
|
|
74
74
|
rake testbot:spec (or :test, :features)
|
data/lib/runner.rb
CHANGED
@@ -4,6 +4,7 @@ require 'macaddr'
|
|
4
4
|
require 'ostruct'
|
5
5
|
require File.dirname(__FILE__) + '/shared/ssh_tunnel'
|
6
6
|
require File.dirname(__FILE__) + '/adapters/adapter'
|
7
|
+
require File.dirname(__FILE__) + '/runner/job'
|
7
8
|
|
8
9
|
TIME_BETWEEN_NORMAL_POLLS = 1
|
9
10
|
TIME_BETWEEN_QUICK_POLLS = 0.1
|
@@ -30,42 +31,6 @@ class CPU
|
|
30
31
|
|
31
32
|
end
|
32
33
|
|
33
|
-
class Job
|
34
|
-
attr_reader :root, :project, :requester_mac
|
35
|
-
|
36
|
-
def initialize(runner, id, requester_mac, project, root, type, ruby_interpreter, files)
|
37
|
-
@runner, @id, @requester_mac, @project, @root, @type, @ruby_interpreter, @files =
|
38
|
-
runner, id, requester_mac, project, root, type, ruby_interpreter, files
|
39
|
-
end
|
40
|
-
|
41
|
-
def jruby?
|
42
|
-
@ruby_interpreter == 'jruby'
|
43
|
-
end
|
44
|
-
|
45
|
-
def run(instance)
|
46
|
-
puts "Running job #{@id} from #{@requester_mac}... "
|
47
|
-
test_env_number = (instance == 0) ? '' : instance + 1
|
48
|
-
result = "\n#{`hostname`.chomp}:#{Dir.pwd}\n"
|
49
|
-
base_environment = "export RAILS_ENV=test; export TEST_ENV_NUMBER=#{test_env_number}; cd #{@project};"
|
50
|
-
|
51
|
-
adapter = Adapter.find(@type)
|
52
|
-
result += `#{base_environment} #{adapter.command(@project, ruby_cmd, @files)} 2>&1`
|
53
|
-
|
54
|
-
Server.put("/jobs/#{@id}", :body => { :result => result, :success => ($?.exitstatus == 0) })
|
55
|
-
puts "Job #{@id} finished."
|
56
|
-
end
|
57
|
-
|
58
|
-
private
|
59
|
-
|
60
|
-
def ruby_cmd
|
61
|
-
if @ruby_interpreter == 'jruby' && @runner.config.jruby_opts
|
62
|
-
'jruby ' + @runner.config.jruby_opts
|
63
|
-
else
|
64
|
-
@ruby_interpreter
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
34
|
class Server
|
70
35
|
include HTTParty
|
71
36
|
end
|
@@ -140,8 +105,8 @@ class Runner
|
|
140
105
|
next unless cpu_available?
|
141
106
|
|
142
107
|
next_job = Server.get("/jobs/next", :query => next_params) rescue nil
|
143
|
-
|
144
|
-
|
108
|
+
last_check_found_a_job = (next_job != nil)
|
109
|
+
next unless last_check_found_a_job
|
145
110
|
|
146
111
|
job = Job.new(*([ self, next_job.split(',') ].flatten))
|
147
112
|
if first_job_from_requester?
|
data/lib/runner/job.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
class Job
|
2
|
+
attr_reader :root, :project, :requester_mac
|
3
|
+
|
4
|
+
def initialize(runner, id, requester_mac, project, root, type, ruby_interpreter, files)
|
5
|
+
@runner, @id, @requester_mac, @project, @root, @type, @ruby_interpreter, @files =
|
6
|
+
runner, id, requester_mac, project, root, type, ruby_interpreter, files
|
7
|
+
end
|
8
|
+
|
9
|
+
def jruby?
|
10
|
+
@ruby_interpreter == 'jruby'
|
11
|
+
end
|
12
|
+
|
13
|
+
def run(instance)
|
14
|
+
puts "Running job #{@id} from #{@requester_mac}... "
|
15
|
+
test_env_number = (instance == 0) ? '' : instance + 1
|
16
|
+
result = "\n#{`hostname`.chomp}:#{Dir.pwd}\n"
|
17
|
+
base_environment = "export RAILS_ENV=test; export TEST_ENV_NUMBER=#{test_env_number}; cd #{@project};"
|
18
|
+
|
19
|
+
adapter = Adapter.find(@type)
|
20
|
+
result += `#{base_environment} #{adapter.command(@project, ruby_cmd, @files)} 2>&1`
|
21
|
+
|
22
|
+
Server.put("/jobs/#{@id}", :body => { :result => result, :success => ($?.exitstatus == 0) })
|
23
|
+
puts "Job #{@id} finished."
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def ruby_cmd
|
29
|
+
if @ruby_interpreter == 'jruby' && @runner.config.jruby_opts
|
30
|
+
'jruby ' + @runner.config.jruby_opts
|
31
|
+
else
|
32
|
+
@ruby_interpreter
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
data/lib/testbot.rb
CHANGED
@@ -9,7 +9,7 @@ unless defined?(Testbot)
|
|
9
9
|
|
10
10
|
# Don't forget to update readme and changelog
|
11
11
|
def self.version
|
12
|
-
version = "0.4.
|
12
|
+
version = "0.4.6"
|
13
13
|
dev_version_file = File.join(File.dirname(__FILE__), '..', 'DEV_VERSION')
|
14
14
|
if File.exists?(dev_version_file)
|
15
15
|
version += File.read(dev_version_file)
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: testbot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 0.4.
|
9
|
+
- 6
|
10
|
+
version: 0.4.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- "Joakim Kolsj\xC3\xB6"
|
@@ -198,6 +198,7 @@ files:
|
|
198
198
|
- lib/new_runner.rb
|
199
199
|
- lib/railtie.rb
|
200
200
|
- lib/requester.rb
|
201
|
+
- lib/runner/job.rb
|
201
202
|
- lib/runner.rb
|
202
203
|
- lib/server/build.rb
|
203
204
|
- lib/server/db.rb
|