# 2026-03-02 工作日志 ## Gitea Actions CI 问题排查 - 成功 ✅ ### 问题描述 - CI 输出被截断,看不到详细错误信息 - 多次修改 ci.yml 但输出不变 - PHP 语法检查形同虚设(退出码问题) - test.yml 和 ci.yml 触发条件混乱 ### 根本原因 1. **workflow 缓存问题**:act runner 缓存了 workflow 文件 2. **分支触发问题**:ci.yml 只在 main/develop 触发,feature 分支触发的是 test.yml 3. **find -exec 退出码问题**:只反映 find 自身,不反映 php -l 的失败状态 ### 解决方案 1. 清除 act 缓存:`rm -rf ~/.cache/act ~/.cache/actcache` 2. 重启 act_runner daemon 3. 修改 ci.yml 触发条件为所有分支 4. 更新自定义镜像添加 Node.js(gitea-runner-php:latest) 5. 修复 PHP 语法检查脚本:正确捕获退出码 6. 删除 test.yml,统一使用 ci.yml ### 最终 CI 配置 ```yaml on: push: branches: ["**"] pull_request: branches: [main, develop] ``` ### PHP 语法检查(正确版本) ```bash errors=0 for file in $(find . -name "*.php" -not -path "./vendor/*"); do if ! php -l "$file" > /dev/null 2>&1; then echo "❌ 语法错误: $file" php -l "$file" errors=$((errors + 1)) fi done if [ $errors -gt 0 ]; then echo "发现 $errors 个语法错误" exit 1 fi echo "✅ 所有 PHP 文件语法正确" ``` ### 修复的文件 - index.php(缺少分号) - ci.yml(多处修改) - docker/runner/Dockerfile(添加 Node.js) - 删除 test.yml