mirror of
https://github.com/kuaifan/dootask.git
synced 2026-06-26 09:12:14 +00:00
- phpstan(larastan ^3.10, level 1 + baseline 封存 86 个存量错误),composer stan / stan-baseline - ESLint 9 flat config(vue2-essential,存量违规降 warn,error 基线为 0),npm run lint - CI:.github/workflows/tests.yml(static-checks + phpunit,phpunit 用 kuaifan/php 镜像跑,FFI doo.so 不在仓库) - Claude Code hooks:编辑 app/ 下 PHP 后自动单文件 phpstan,失败回灌 - 检索地图:routes/api-map.md(doc:api-map 生成,325 接口)、docs/events-map.md(events:map)、types/dootask-globals.d.ts($A 207 方法)、npm run check:lang(存量缺失 93 条,CI 暂非阻塞) - CLAUDE.md:版本号更正 Laravel 13/PHP 8.4,新增质量门禁、检索地图、架构增量规则章节 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
82 lines
2.3 KiB
YAML
82 lines
2.3 KiB
YAML
name: Tests
|
|
|
|
on:
|
|
push:
|
|
branches: [pro, master]
|
|
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
|
|
'
|