docs: 更新 2026-03-02 工作日志 - Gitea CI 排查完成
This commit is contained in:
@@ -1,24 +1,54 @@
|
||||
# 2026-03-02 工作日志
|
||||
|
||||
## Gitea Actions CI 问题排查
|
||||
## 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
|
||||
4. 更新自定义镜像添加 Node.js(gitea-runner-php:latest)
|
||||
5. 修复 PHP 语法检查脚本:正确捕获退出码
|
||||
6. 删除 test.yml,统一使用 ci.yml
|
||||
|
||||
### 当前状态
|
||||
- 正在构建新镜像 `gitea-runner-php:latest`(含 Node.js)
|
||||
- 添加了 nodejs 和 npm 到 Dockerfile
|
||||
### 最终 CI 配置
|
||||
```yaml
|
||||
on:
|
||||
push:
|
||||
branches: ["**"]
|
||||
pull_request:
|
||||
branches: [main, develop]
|
||||
```
|
||||
|
||||
### 后续
|
||||
- 镜像构建完成后需要重新测试 CI
|
||||
### 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
|
||||
|
||||
Reference in New Issue
Block a user