80 lines
3.3 KiB
YAML
80 lines
3.3 KiB
YAML
name: Run Unit Tests
|
||
on:
|
||
pull_request:
|
||
branches:
|
||
- main
|
||
env:
|
||
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
|
||
|
||
jobs:
|
||
test:
|
||
runs-on: phpunit_test
|
||
container: mirror.ccs.tencentyun.com/xeden3/ai-code-reviewer-gitea-runner:v1.3
|
||
steps:
|
||
- name: Checkout code
|
||
uses: http://119.91.43.128:3003/james/checkout@v4
|
||
|
||
- name: Get Pull Request Number
|
||
id: get_pr_number
|
||
run: |
|
||
# 提取 PR 编号(如 pull/14/head -> 14)
|
||
PULLS_ID=$(git branch | grep -o 'pull/[0-9]\+' | cut -d'/' -f2)
|
||
if [ -z "$PULLS_ID" ]; then
|
||
echo "❌ 无法提取 PR 编号"
|
||
exit 1
|
||
fi
|
||
echo "PR ID: $PULLS_ID"
|
||
# 写入 GITHUB_ENV(可选,兼容旧脚本)
|
||
echo "PULLS_ID=$PULLS_ID" >> $GITHUB_ENV
|
||
# 写入 outputs,供后续步骤使用
|
||
echo "pr_number=$PULLS_ID" >> $GITHUB_OUTPUT
|
||
|
||
- name: Run code review script
|
||
env:
|
||
# === 项目配置 ===
|
||
GIT_PROJECT_PATH: /workspace/hui/SCTMES_V5 # Gitea 的工作目录
|
||
ALLOWED_PATHS: '["EdgeManager/**", "mes_in_sct/**", "mes_in_task/**", "webman/**"]' # 允许检测目录
|
||
IGNORED_PATHS: '["EdgeManager/vendor/**", "mes_in_sct/vendor/**", "mes_in_task/vendor/**", "webman/public/**", "webman/runtime/**", "webman/vendor/**"]' # 忽略检测目录
|
||
|
||
# === Gitea API 配置(传给 audit_code.sh)===
|
||
API_URL: "http://119.91.43.128:3003/api/v1/repos/hui/SCTMES_V5/issues/${{ steps.get_pr_number.outputs.pr_number }}/comments"
|
||
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
|
||
|
||
SYSTEM_PROMPT: |
|
||
你是代码审核助手,我需要你审核代码后以JSON形式输出通过(passed)或者不通过(no-passed),只输出json不添加其他说明。
|
||
只判断代码是否存在变量拼写错误,并且在issues输出行数、出错语句及原因;
|
||
忽略其他错误,包括代码安全、SQL 语句内的错误、函数未定义错误、PHP内置函数错误;
|
||
如果代码中出现未定义的变量错误、未定义的方法错误、或其他逻辑错误,在suggestion输出你的建议,但这部分不作为passed与否的判定;
|
||
最终输出一定遵守以下JSON格式,不允许出现其他格式:
|
||
|
||
{
|
||
"status": "no-passed",
|
||
"issues": [
|
||
{
|
||
"line": 105,
|
||
"reason": "变量命名xxx不符合规范"
|
||
}
|
||
],
|
||
"suggestion":"代码建议1:xxxxx"
|
||
}
|
||
|
||
如果没有发现相关问题,请一定输出以下JSON格式:
|
||
{"status": "passed"}
|
||
run: |
|
||
PR_NUMBER=$PULLS_ID
|
||
OWNER="hui"
|
||
REPO="SCTMES_V5"
|
||
SERVER_URL="http://119.91.43.128:3003"
|
||
|
||
COMMENT="🧪 单元测试已完成。\n- 状态: 成YYYYY功 ✅\n- Commit ID: $(git rev-parse HEAD)\n- 查看日志: [Actions](https://your-ci-link-here)"
|
||
|
||
API_URL="$SERVER_URL/api/v1/repos/$OWNER/$REPO/issues/$PR_NUMBER/comments"
|
||
|
||
curl -X POST \
|
||
-H "Authorization: token $GITEA_TOKEN" \
|
||
-H "Content-Type: application/json" \
|
||
-d "{\"body\": \"$COMMENT\"}" \
|
||
"$API_URL"
|
||
|
||
cd /workspace
|
||
./audit_code.sh |