ci: isolate MySQL test services
CI / test (pull_request) Canceled after 1m1s
PR合并自动部署 / deploy (pull_request) Canceled after 0s
PR合并自动部署 / test (pull_request) Canceled after 4m33s

This commit is contained in:
2026-08-08 22:42:18 +08:00
parent 70be19918b
commit 7511505aea
2 changed files with 24 additions and 41 deletions
+12 -20
View File
@@ -8,6 +8,17 @@ on:
jobs:
test:
runs-on: ubuntu-latest
services:
mysql:
image: mysql:8.0.35
env:
MYSQL_ROOT_PASSWORD: ci-root-password
MYSQL_DATABASE: hulumath
options: >-
--health-cmd "mysqladmin ping -h 127.0.0.1 -uroot -pci-root-password --silent"
--health-interval 5s
--health-timeout 5s
--health-retries 20
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
@@ -31,28 +42,9 @@ jobs:
run: python -c "from config.asgi import application; print(type(application).__name__)"
- name: Unit tests
run: pytest -q
- name: Start MySQL 8.0.35
run: |
docker rm -f hulumath-ci-mysql 2>/dev/null || true
docker run -d --name hulumath-ci-mysql \
-p 3307:3306 \
-e MYSQL_ROOT_PASSWORD=ci-root-password \
-e MYSQL_DATABASE=hulumath \
mysql:8.0.35 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_0900_ai_ci
for i in $(seq 1 60); do
if docker exec hulumath-ci-mysql \
mysqladmin ping -h 127.0.0.1 -uroot -pci-root-password --silent; then
exit 0
fi
sleep 2
done
docker logs hulumath-ci-mysql
exit 1
- name: MySQL migrations and tests
env:
DATABASE_URL: mysql://root:ci-root-password@127.0.0.1:3307/hulumath
DATABASE_URL: mysql://root:ci-root-password@mysql:3306/hulumath
run: |
python backend/manage.py check --database default
python backend/manage.py check_mysql