@@ -16,14 +16,20 @@ jobs:
16
16
17
17
- run : brew install protobuf
18
18
19
- - name : Build
19
+ - name : Build Slash
20
+ run : cd pink/third/slash/slash && make
21
+
22
+ - name : Build Pink
20
23
run : cd pink && make static_lib
21
24
22
25
build-and-run-redis-benchmark :
23
26
needs : [build-pink-macos]
24
27
runs-on : ubuntu-latest
25
28
env :
26
- RONDB_TARBALL_URI : https://repo.hops.works/master/rondb-22.10.5-linux-glibc2.28-x86_64.tar.gz
29
+ RONDB_VERSION : 24.10.0
30
+ RONDB_TARBALL_URI : https://repo.hops.works/master/rondb-24.10.0-linux-glibc2.28-x86_64.tar.gz
31
+ RONDB_DOCKER_DIR : /tmp/rondb-docker
32
+ RONDB_TARBALL_FILE : rondb.tar.gz
27
33
RONDB_PATH : /tmp/rondb
28
34
IMAGE_NAME : rondis:latest
29
35
CONTAINER_NAME : rondis
@@ -35,31 +41,33 @@ jobs:
35
41
with :
36
42
fetch-depth : 0
37
43
44
+ - name : Clone rondb-docker
45
+ run : git clone -b release-0.7 https://github.com/logicalclocks/rondb-docker.git $RONDB_DOCKER_DIR
46
+
47
+ - name : Download RonDB
48
+ run : |
49
+ wget $RONDB_TARBALL_URI -O $RONDB_DOCKER_DIR/$RONDB_TARBALL_FILE
50
+ mkdir -p $RONDB_PATH
51
+ tar xfz $RONDB_DOCKER_DIR/$RONDB_TARBALL_FILE -C $RONDB_PATH --strip-components=1
52
+
38
53
- name : Run rondb-docker
39
- env :
40
- RONDB_DOCKER_DIR : /tmp/rondb-docker
41
54
run : |
42
- path_now=$(pwd)
43
- git clone -b release-0.7 https://github.com/logicalclocks/rondb-docker.git $RONDB_DOCKER_DIR
44
- cd $RONDB_DOCKER_DIR && ./build_run_docker.sh -d \
55
+ cd $RONDB_DOCKER_DIR
56
+ # The script expects a relative path to the tarball
57
+ ./build_run_docker.sh -d \
58
+ --rondb-tarball-path ./$RONDB_TARBALL_FILE \
59
+ --rondb-version $RONDB_VERSION \
45
60
--size small \
46
61
--num-mgm-nodes 1 \
47
62
--node-groups 1 \
48
63
--replication-factor 1 \
49
64
--num-mysql-nodes 1 \
50
65
--num-rest-api-nodes 0 \
51
66
--num-benchmarking-nodes 0
52
- cd $path_now
53
67
54
68
- name : Build Rondis image
55
69
run : docker build -t $IMAGE_NAME .
56
70
57
- - name : Download RonDB
58
- run : |
59
- wget $RONDB_TARBALL_URI -O /tmp/temp_tarball.tar.gz
60
- mkdir -p $RONDB_PATH
61
- tar xfz /tmp/temp_tarball.tar.gz -C $RONDB_PATH --strip-components=1
62
-
63
71
- name : Create Rondis environment
64
72
run : |
65
73
docker run -d \
79
87
run : |
80
88
docker exec -i mysqld_1 bash -c "mysql -uroot -e 'CREATE DATABASE redis;'"
81
89
for sql_file in pink/rondis/sql/*.sql; do
82
- cat "$sql_file" | docker exec -i mysqld_1 mysql -uroot
90
+ cat "$sql_file" | docker exec -i mysqld_1 mysql -uroot --database=redis
83
91
done
84
92
85
93
- name : Connect Docker network
@@ -93,17 +101,23 @@ jobs:
93
101
docker exec -w $DOCKER_WORK_DIR -e LD_LIBRARY_PATH=/tmp/rondb/lib \
94
102
-t $CONTAINER_NAME pink/rondis/rondis 6379 mgmd_1:1186 2 > $LOCAL_RONDIS_LOG &
95
103
104
+ # Takes a few seconds before all connections are setup and started properly
105
+ - name : Wait for Rondis server to start properly
106
+ run : sleep 5
107
+
96
108
# Running this multiple times to check for memory leaks and that overwrites/updates/deletes work
97
109
- name : Run tests multiple times
98
110
run : |
99
111
for i in {1..50}; do
100
112
docker exec -w $DOCKER_WORK_DIR -i $CONTAINER_NAME bash -c \
101
113
"pink/rondis/tests/get_set.sh $((i % 3))"
114
+ docker exec -w $DOCKER_WORK_DIR -i $CONTAINER_NAME bash -c \
115
+ "pink/rondis/tests/hget_hset.sh $((i % 5)) $((i % 3))"
102
116
echo "Success in run $i"
103
117
done
104
118
105
119
- name : Run Redis benchmark
106
- run : docker exec -i $CONTAINER_NAME bash -c "redis-benchmark -t get,set -c 2 "
120
+ run : docker exec -i $CONTAINER_NAME bash -c "redis-benchmark -t get,set,incr,hget,hset,hincr -r 100 -P 10 --threads 3 "
107
121
108
122
- name : Show Rondis logs
109
123
if : always()
0 commit comments