Skip to content

Commit 347d0e5

Browse files
committed
Update: 迁移使用 redis 新容器
Update: 修复测试
1 parent 32f8b5e commit 347d0e5

File tree

7 files changed

+50
-39
lines changed

7 files changed

+50
-39
lines changed

.github/actions/ci-prepare/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ runs:
1414
run: |
1515
docker network create imi-ci-service-network --subnet 172.10.12.0/24
1616
docker compose -f ./.github/service/redis-cluster/docker-compose.yml up -d
17-
docker compose -f ./.github/docker-compose.yml up -d ${{ inputs.env }} redis-new
17+
docker compose -f ./.github/docker-compose.yml up -d ${{ inputs.env }}
1818
docker exec ${{ inputs.env }} php -v
1919
docker exec ${{ inputs.env }} php -m
2020
docker exec ${{ inputs.env }} php --ri redis

.github/docker-compose.yml

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -40,28 +40,30 @@ services:
4040
volumes:
4141
- "${GITHUB_WORKSPACE}:/imi:rw"
4242

43-
redis:
44-
image: redis:6-alpine
45-
container_name: redis
46-
depends_on:
47-
- shared-tmp
48-
command: redis-server /etc/redis.conf
49-
volumes:
50-
- ./redis.conf:/etc/redis.conf
51-
- /run/shared:/run/shared
52-
ports:
53-
- 6379:6379
43+
# redis:
44+
# image: redis:6-alpine
45+
# container_name: redis
46+
# depends_on:
47+
# - shared-tmp
48+
# command: redis-server /etc/redis.conf
49+
# volumes:
50+
# - ./redis.conf:/etc/redis.conf
51+
# - /run/shared:/run/shared
52+
# ports:
53+
# - 6379:6379
5454

55-
redis-new:
55+
redis:
5656
image: bitnami/redis:7.2
57-
container_name: redis-new
57+
container_name: redis
5858
depends_on:
5959
- shared-tmp
6060
volumes:
6161
- "${GITHUB_WORKSPACE}/.github/service/redis-tls/certs:/opt/bitnami/redis/certs"
62+
- "${GITHUB_WORKSPACE}/.github/service/redis-tls/redis-overrides.conf:/opt/bitnami/redis/redis-overrides.conf"
6263
- /run/shared:/run/shared
6364
environment:
64-
REDIS_PORT_NUMBER: 6377
65+
REDIS_OVERRIDES_FILE: "/opt/bitnami/redis/redis-overrides.conf"
66+
REDIS_PORT_NUMBER: 6379
6567
REDIS_PASSWORD: "l83aa26"
6668
REDIS_TLS_ENABLED: "true"
6769
REDIS_TLS_PORT_NUMBER: 6443
@@ -71,13 +73,18 @@ services:
7173
REDIS_TLS_CA_FILE: "/opt/bitnami/redis/certs/ca.crt"
7274
REDIS_TLS_AUTH_CLIENTS: "yes"
7375
healthcheck:
74-
test: ["CMD-SHELL", "redis-cli -h 127.0.0.1 -p 6377 -a l83aa26 INFO | grep 'redis_version'"]
76+
test: ["CMD-SHELL", "redis-cli -h 127.0.0.1 -p $${REDIS_PORT_NUMBER:-6379} -a $${REDIS_PASSWORD} INFO | grep 'redis_version'"]
7577
interval: 3s
7678
timeout: 60s
7779
retries: 30
7880
ports:
79-
- "6377:6377"
81+
- "6379:6379"
8082
- "6443:6443"
83+
networks:
84+
proxies:
85+
aliases:
86+
- redis
87+
ipv4_address: 172.10.12.111
8188

8289
rabbitmq:
8390
container_name: rabbitmq
@@ -124,13 +131,13 @@ services:
124131
- shared-tmp
125132
- mysql
126133
- redis
127-
- redis-new
128134
- rabbitmq
129135
- kafka1
130136
- postgres
131137
environment:
132138
MYSQL_SERVER_HOST: mysql
133-
REDIS_SERVER_HOST: ${REDIS_SERVER_HOST}
139+
REDIS_SERVER_HOST: ${REDIS_SERVER_HOST:-redis}
140+
REDIS_SERVER_PASSWORD: ${REDIS_SERVER_PASSWORD:-l83aa26}
134141
PGSQL_SERVER_HOST: postgres
135142
MYSQL_SERVER_PASSWORD: ""
136143
AMQP_SERVER_HOST: "rabbitmq"
@@ -140,7 +147,7 @@ services:
140147
REDIS_SERVER_CLUSTER_SEEDS: "172.10.12.2:6379,172.10.12.3:6379,172.10.12.4:6379,172.10.12.5:6379,172.10.12.6:6379,172.10.12.7:6379"
141148
REDIS_SERVER_TLS_CLUSTER_SEEDS: "172.10.12.2:6443,172.10.12.3:6443,172.10.12.4:6443,172.10.12.5:6443,172.10.12.6:6443,172.10.12.7:6443"
142149
REDIS_SERVER_UNIX_SOCK: "/run/shared/redis.sock"
143-
REDIS_SERVER_TLS_HOST: "redis-new"
150+
REDIS_SERVER_TLS_HOST: "redis"
144151
REDIS_SERVER_TLS_PORT: "6443"
145152
REDIS_SERVER_TLS_PASSWORD: "l83aa26"
146153
REDIS_SERVER_TLS_CA_FILE: "/imi/.github/service/redis-tls/certs/ca.crt"
@@ -162,13 +169,13 @@ services:
162169
- shared-tmp
163170
- mysql
164171
- redis
165-
- redis-new
166172
- rabbitmq
167173
- kafka1
168174
- postgres
169175
environment:
170176
MYSQL_SERVER_HOST: mysql
171177
REDIS_SERVER_HOST: ${REDIS_SERVER_HOST}
178+
REDIS_SERVER_PASSWORD: ${REDIS_SERVER_PASSWORD:-l83aa26}
172179
PGSQL_SERVER_HOST: postgres
173180
MYSQL_SERVER_PASSWORD: ""
174181
AMQP_SERVER_HOST: "rabbitmq"
@@ -178,7 +185,7 @@ services:
178185
REDIS_SERVER_CLUSTER_SEEDS: "172.10.12.2:6379,172.10.12.3:6379,172.10.12.4:6379,172.10.12.5:6379,172.10.12.6:6379,172.10.12.7:6379"
179186
REDIS_SERVER_TLS_CLUSTER_SEEDS: "172.10.12.2:6443,172.10.12.3:6443,172.10.12.4:6443,172.10.12.5:6443,172.10.12.6:6443,172.10.12.7:6443"
180187
REDIS_SERVER_UNIX_SOCK: "/run/shared/redis.sock"
181-
REDIS_SERVER_TLS_HOST: "redis-new"
188+
REDIS_SERVER_TLS_HOST: "redis"
182189
REDIS_SERVER_TLS_PORT: "6443"
183190
REDIS_SERVER_TLS_PASSWORD: "l83aa26"
184191
REDIS_SERVER_TLS_CA_FILE: "/imi/.github/service/redis-tls/certs/ca.crt"
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
unixsocket /run/shared/redis.sock
2+
unixsocketperm 777

.github/workflows/ci.yml

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ jobs:
3434
REPOSITORY_OWNER: ${{ github.repository_owner }}
3535
IMAGE_VERSION: ${{ matrix.swoole.version }}
3636
MYSQL_DOCKER_VERSION: "8.0"
37-
REDIS_SERVER_HOST: redis
3837
ROADRUNNER_DOCKER_VERSION: ${{ matrix.roadrunner }}
3938
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
4039
steps:
@@ -61,13 +60,13 @@ jobs:
6160
run: |
6261
docker ps
6362
docker logs shared-tmp || true
64-
docker logs redis-new || true
63+
docker logs redis || true
6564
docker exec ${ENV_SERVICE} bash -c "ls -lha /run/shared"
6665
echo ">>> redis-cluster-node-0"
6766
docker exec ${ENV_SERVICE} bash -c "echo -e 'auth l83aa26\r\ninfo server' | nc redis-cluster-node-0-1 6379 -w 1"
6867
docker exec ${ENV_SERVICE} bash -c "echo -e 'auth l83aa26\r\ncluster info\r\ncluster nodes' | nc redis-cluster-node-0-1 6379 -w 1"
69-
echo ">>> redis-new"
70-
docker exec ${ENV_SERVICE} bash -c "echo -e 'auth l83aa26\r\ninfo server' | nc redis-new 6377 -w 1"
68+
echo ">>> redis"
69+
docker exec ${ENV_SERVICE} bash -c "echo -e 'auth l83aa26\r\ninfo server' | nc redis 6379 -w 1"
7170
- name: Test
7271
if: ${{ env.test_prepared && always() }}
7372
run: docker exec ${ENV_SERVICE} composer test
@@ -143,6 +142,10 @@ jobs:
143142
env:
144143
MYSQL_DOCKER_VERSION: "8.0"
145144
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
145+
REDIS_SERVER_HOST: "127.0.0.1"
146+
REDIS_SERVER_PASSWORD: "l83aa26"
147+
REDIS_SERVER_CLUSTER_PASSWORD: "l83aa26"
148+
REDIS_SERVER_CLUSTER_SEEDS: "172.10.12.2:6379,172.10.12.3:6379,172.10.12.4:6379,172.10.12.5:6379,172.10.12.6:6379,172.10.12.7:6379"
146149
steps:
147150
- name: Checkout
148151
uses: actions/checkout@v4
@@ -152,7 +155,7 @@ jobs:
152155
sudo apt update && sudo apt install -y rsync netcat-openbsd tree
153156
docker network create imi-ci-service-network --subnet 172.10.12.0/24
154157
docker compose -f ./.github/service/redis-cluster/docker-compose.yml up -d
155-
docker compose -f ./.github/docker-compose.yml up -d mysql postgres redis redis-new rabbitmq kafka1
158+
docker compose -f ./.github/docker-compose.yml up -d mysql postgres redis rabbitmq kafka1
156159
echo "127.0.0.1 kafka1" | sudo tee -a /etc/hosts
157160
- name: Setup swoole-cli
158161
run: .github/script/install-swoole-cli.sh ${{ matrix.swoole-cli }}
@@ -199,10 +202,7 @@ jobs:
199202
find /run/shared -name *.sock
200203
tree -alfugh /run/shared
201204
echo ">>> redis"
202-
echo -e 'info server' | nc 127.0.0.1 6379 -w 1
203-
echo ">>> ====="
204-
echo ">>> redis-new"
205-
echo -e 'auth l83aa26\r\ninfo server' | nc 127.0.0.1 6377 -w 1
205+
echo -e 'auth l83aa26\r\ninfo server' | nc 127.0.0.1 6379 -w 1
206206
echo ">>> ====="
207207
docker compose -f ./.github/service/redis-cluster/docker-compose.yml logs
208208
echo ">>> redis-cluster"
@@ -211,9 +211,6 @@ jobs:
211211
docker compose -f ./.github/service/redis-cluster/docker-compose.yml exec node-0 cat /bitnami/redis/data/nodes.conf
212212
- name: Test
213213
if: ${{ env.test_prepared && always() }}
214-
env:
215-
REDIS_SERVER_CLUSTER_PASSWORD: "l83aa26"
216-
REDIS_SERVER_CLUSTER_SEEDS: "172.10.12.2:6379,172.10.12.3:6379,172.10.12.4:6379,172.10.12.5:6379,172.10.12.6:6379,172.10.12.7:6379"
217214
run: composer test
218215
- name: Test connection-center
219216
if: ${{ env.test_prepared && always() }}
@@ -224,10 +221,8 @@ jobs:
224221
- name: Test redis
225222
if: ${{ env.test_prepared && always() }}
226223
env:
227-
REDIS_SERVER_CLUSTER_PASSWORD: "l83aa26"
228-
REDIS_SERVER_CLUSTER_SEEDS: "172.10.12.2:6379,172.10.12.3:6379,172.10.12.4:6379,172.10.12.5:6379,172.10.12.6:6379,172.10.12.7:6379"
229-
REDIS_SERVER_TLS_CLUSTER_SEEDS: "172.10.12.2:6443,172.10.12.3:6443,172.10.12.4:6443,172.10.12.5:6443,172.10.12.6:6443,172.10.12.7:6443"
230224
REDIS_SERVER_UNIX_SOCK: "/run/shared/redis.sock"
225+
REDIS_SERVER_TLS_CLUSTER_SEEDS: "172.10.12.2:6443,172.10.12.3:6443,172.10.12.4:6443,172.10.12.5:6443,172.10.12.6:6443,172.10.12.7:6443"
231226
REDIS_SERVER_TLS_HOST: "127.0.0.1"
232227
REDIS_SERVER_TLS_PORT: "6443"
233228
REDIS_SERVER_TLS_PASSWORD: "l83aa26"

src/Components/amqp/tests/PHPUnitHook.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ public function executeBeforeFirstTest(): void
7070
App::run('AMQPApp', CliApp::class, static function (): void {
7171
});
7272
break;
73+
default:
74+
throw new \RuntimeException('Unsupported AMQP_TEST_MODE');
7375
}
7476
}
7577

src/Components/amqp/tests/bootstrap.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,15 @@ function startServer(): void
8888
$redis = new \Redis();
8989
$host = env('REDIS_SERVER_HOST', '127.0.0.1');
9090
$port = env('REDIS_SERVER_PORT', 6379);
91+
$password = env('REDIS_SERVER_PASSWORD');
9192
if (!(str_contains($host, '/') ? $redis->connect($host) : $redis->connect($host, $port)))
9293
{
9394
exit('Redis connect failed');
9495
}
96+
if ($password)
97+
{
98+
$redis->auth($password);
99+
}
95100
$redis->del($redis->keys('imi-amqp:*'));
96101
$redis->close();
97102
})();

src/Components/redis/tests/Tests/RedisHandlerTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public function testPhpRedisUnixSockConnection(): void
7575
host: env('REDIS_SERVER_UNIX_SOCK'),
7676
port: 0,
7777
seeds: null,
78-
password: null,
78+
password: env('REDIS_SERVER_PASSWORD'),
7979
database: 0,
8080
prefix: '',
8181
timeout: 1,
@@ -172,7 +172,7 @@ public function testPredisUnixSockConnection(): void
172172
host: env('REDIS_SERVER_UNIX_SOCK'),
173173
port: 0,
174174
seeds: null,
175-
password: null,
175+
password: env('REDIS_SERVER_PASSWORD'),
176176
database: 0,
177177
prefix: '',
178178
timeout: 1,

0 commit comments

Comments
 (0)