@@ -2,20 +2,25 @@ require 'rubygems'
2
2
require 'rubygems/package_task'
3
3
require 'rake/testtask'
4
4
5
+ ENV [ "REDIS_BRANCH" ] ||= "unstable"
6
+
5
7
$:. unshift File . join ( File . dirname ( __FILE__ ) , 'lib' )
6
8
require 'redis/version'
7
9
8
10
REDIS_DIR = File . expand_path ( File . join ( ".." , "test" ) , __FILE__ )
9
11
REDIS_CNF = File . join ( REDIS_DIR , "test.conf" )
10
12
REDIS_PID = File . join ( REDIS_DIR , "db" , "redis.pid" )
13
+ BINARY = "tmp/redis-#{ ENV [ "REDIS_BRANCH" ] } /src/redis-server"
11
14
12
15
task :default => :run
13
16
14
17
desc "Run tests and manage server start/stop"
15
18
task :run => [ :start , :test , :stop ]
16
19
17
20
desc "Start the Redis server"
18
- task :start do
21
+ task :start => BINARY do
22
+ sh "#{ BINARY } --version"
23
+
19
24
redis_running = \
20
25
begin
21
26
File . exists? ( REDIS_PID ) && Process . kill ( 0 , File . read ( REDIS_PID ) . to_i )
@@ -25,11 +30,7 @@ task :start do
25
30
end
26
31
27
32
unless redis_running
28
- unless system ( "which redis-server > /dev/null" )
29
- abort "redis-server not in PATH"
30
- end
31
-
32
- unless system ( "redis-server #{ REDIS_CNF } " )
33
+ unless system ( "#{ BINARY } #{ REDIS_CNF } " )
33
34
abort "could not start redis-server"
34
35
end
35
36
end
@@ -43,6 +44,19 @@ task :stop do
43
44
end
44
45
end
45
46
47
+ file BINARY do
48
+ branch = ENV . fetch ( "REDIS_BRANCH" )
49
+
50
+ sh <<-SH
51
+ mkdir -p tmp;
52
+ cd tmp;
53
+ wget https://github.com/antirez/redis/archive/#{ branch } .tar.gz -O #{ branch } .tar.gz;
54
+ tar xf #{ branch } .tar.gz;
55
+ cd redis-#{ branch } ;
56
+ make
57
+ SH
58
+ end
59
+
46
60
Rake ::TestTask . new do |t |
47
61
t . options = "-v"
48
62
t . test_files = FileList [ "test/*_test.rb" ]
0 commit comments