kuaifan 53dadabca0 ci: tests 工作流增加 dev 分支 push 触发
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-13 01:26:18 +00:00

82 lines
2.3 KiB
YAML

name: Tests
on:
push:
branches: [pro, master, dev]
pull_request:
jobs:
static-checks:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.4'
extensions: mbstring, intl, gd, xml, zip, swoole, redis
tools: composer:v2
- name: Install Composer Dependencies
run: composer install --prefer-dist --no-interaction
- name: PHPStan
run: composer stan
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install NPM Dependencies
run: npm install --no-audit --no-fund
- name: ESLint
run: npm run lint
# 存量缺失文案 93 条(见 scripts/check-language.mjs 输出),清零后移除 continue-on-error 改为强制
- name: Language Check
run: npm run check:lang
continue-on-error: true
phpunit:
runs-on: ubuntu-latest
services:
mariadb:
image: mariadb:10.7.3
env:
MYSQL_ROOT_PASSWORD: test
MYSQL_DATABASE: dootask
ports:
- 3306:3306
options: >-
--health-cmd="mysqladmin ping -h localhost -ptest"
--health-interval=10s
--health-timeout=5s
--health-retries=10
redis:
image: redis:alpine
ports:
- 6379:6379
steps:
- name: Checkout
uses: actions/checkout@v4
# 用项目自身的 PHP 镜像跑测试(内含 /usr/lib/doo/doo.so FFI 库,裸 runner 无法运行)
- name: Run PHPUnit in DooTask PHP image
run: |
docker run --rm --network host -v "$GITHUB_WORKSPACE":/var/www -w /var/www \
kuaifan/php:swoole-8.4 sh -c '
composer install --prefer-dist --no-interaction &&
cp .env.example .env &&
sed -i "s/^DB_HOST=.*/DB_HOST=127.0.0.1/" .env &&
sed -i "s/^DB_DATABASE=.*/DB_DATABASE=dootask/" .env &&
sed -i "s/^DB_PASSWORD=.*/DB_PASSWORD=test/" .env &&
sed -i "s/^REDIS_HOST=.*/REDIS_HOST=127.0.0.1/" .env &&
php artisan key:generate &&
php artisan migrate --seed --force &&
php vendor/bin/phpunit
'