Merge pull request #4666 from nextcloud/enable-redis-cluster

Add redis cluster tests to our CI jobs
This commit is contained in:
Morris Jobke 2017-05-16 10:10:25 -05:00 committed by GitHub
commit 78e6c2dea4
4 changed files with 44 additions and 6 deletions

View file

@ -526,6 +526,17 @@ pipeline:
when:
matrix:
TEST: memcache-memcached
memcache-redis-cluster:
image: nextcloudci/php7.0:php7.0-7
commands:
- sleep 10
- ./autotest.sh sqlite tests/lib/Memcache/RedisTest.php
- wget https://codecov.io/bash -O codecov.sh
- sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"
- sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"
when:
matrix:
TEST: memcache-redis-cluster
matrix:
include:
- TESTS: checkers
@ -582,6 +593,8 @@ matrix:
- TESTS: sqlite-php7.0-samba-native
- TESTS: sqlite-php7.0-samba-non-native
- TEST: memcache-memcached
- TEST: memcache-redis-cluster
ENABLE_REDIS_CLUSTER: true
- TESTS: sqlite-php7.0-webdav-apache
ENABLE_REDIS: true
- DB: NODB
@ -618,6 +631,11 @@ services:
when:
matrix:
ENABLE_REDIS: true
cache-cluster:
image: grokzen/redis-cluster
when:
matrix:
ENABLE_REDIS_CLUSTER: true
postgres:
image: postgres
environment:

View file

@ -184,6 +184,8 @@ function execute_tests {
if [ "$ENABLE_REDIS" == "true" ] ; then
cp tests/redis.config.php config/redis.config.php
elif [ "$ENABLE_REDIS_CLUSTER" == "true" ] ; then
cp tests/redis-cluster.config.php config/redis.config.php
fi
_DB=$DB

View file

@ -79,12 +79,10 @@ class Redis extends Cache implements IMemcacheTTL {
public function clear($prefix = '') {
$prefix = $this->getNameSpace() . $prefix . '*';
$it = null;
self::$cache->setOption(\Redis::OPT_SCAN, \Redis::SCAN_RETRY);
while ($keys = self::$cache->scan($it, $prefix)) {
self::$cache->del($keys);
}
return true;
$keys = self::$cache->keys($prefix);
$deleted = self::$cache->del($keys);
return count($keys) === $deleted;
}
/**

View file

@ -0,0 +1,20 @@
<?php
$CONFIG = [
'memcache.local' => '\\OC\\Memcache\\Redis',
'memcache.distributed' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis.cluster' => [
'seeds' => [ // provide some/all of the cluster servers to bootstrap discovery, port required
'localhost:7000',
'localhost:7001',
'localhost:7002',
'localhost:7003',
'localhost:7004',
'localhost:7005'
],
'timeout' => 0.0,
'read_timeout' => 0.0,
'failover_mode' => \RedisCluster::FAILOVER_ERROR
],
];