name: Latest dependencies
on:
schedule:
- cron: "0 4 * * 1"
workflow_dispatch:
jobs:
latest-deps:
name: Test against the latest dependencies
runs-on: ubuntu-latest
timeout-minutes: 30
env:
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse
steps:
- name: Checkout sources
uses: actions/checkout@v5
- name: Update the lockfile
run: cargo update
- name: Create Redis containers
run: |
cd /home/runner/work/rustis/rustis/redis/
sh ./docker_up.sh
- name: Wait for Redis to be ready
timeout-minutes: 3
run: |
echo "Waiting for standalone node..."
until docker exec redis-standalone redis-cli ping 2>/dev/null | grep -q PONG; do
sleep 1
done
echo "Waiting for cluster to reach cluster_state:ok..."
until docker exec redis-node1 redis-cli -p 7000 cluster info 2>/dev/null | grep -q "cluster_state:ok"; do
sleep 1
done
echo "Waiting for spare cluster nodes..."
until docker exec redis-spare-node1 redis-cli -p 7006 ping 2>/dev/null | grep -q PONG; do
sleep 1
done
until docker exec redis-spare-node2 redis-cli -p 7007 ping 2>/dev/null | grep -q PONG; do
sleep 1
done
echo "Waiting for the spare Sentinel to see its replica..."
until docker exec redis-spare-sentinel redis-cli -p 26382 \
sentinel replicas spareservice 2>/dev/null | grep -q "master-link-status"; do
sleep 1
done
echo "Redis is ready."
- name: Run cargo test
run: cargo test --release --features pool,tokio-rustls,json,client-cache -- --test-threads=1