6eac0b2cf2
Worker Base Image Build / Build Worker Base Images (worker-base-builder-cache, infra/docker/worker-base-builder.Dockerfile, worker-base-builder, builder) (push) Failing after 1m54s
Worker Base Image Build / Build Worker Base Images (worker-base-runtime-cache, infra/docker/worker-base-runtime.Dockerfile, worker-base-runtime, runtime) (push) Failing after 1m36s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Has been skipped
CI/CD Pipeline / Check if frontend-only change (push) Has been skipped
CI/CD Pipeline / Validate - Code Quality (push) Failing after 1m29s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 1m4s
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 1m2s
CI/CD Pipeline / Unit Tests (push) Successful in 3m38s
CI/CD Pipeline / Integration Tests (push) Successful in 2m0s
CI/CD Pipeline / Frontend Lint (push) Successful in 28s
CI/CD Pipeline / Frontend Unit Tests (push) Failing after 44s
CI/CD Pipeline / PR Build API Image (push) Has been skipped
CI/CD Pipeline / PR Build Web Image (push) Has been skipped
CI/CD Pipeline / PR Build Worker Image (push) Has been skipped
CI/CD Pipeline / Build Staging API Image (push) Failing after 2m16s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 8m14s
CI/CD Pipeline / Build Staging Worker Image (push) Failing after 2m0s
CI/CD Pipeline / Build Production API Image (push) Has been skipped
CI/CD Pipeline / Build Production Web Image (push) Has been skipped
CI/CD Pipeline / Build Production Worker Image (push) Has been skipped
CI/CD Pipeline / Deploy Production (push) Has been skipped
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
CI/CD Pipeline / Staging E2E Tests (push) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (push) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (push) Has been skipped
同步内容: 1. CI流水线配置(ci-pipeline.yml)与develop对齐 2. PR构建脚本docker_build_only.sh增加buildx→docker build回退 3. pre-build步骤worker基础镜像构建增加buildx回退 4. 单元测试脚本全量覆盖率改为仅报告不阻塞 5. diff-cover依赖加入requirements-dev.txt 6. worker base builder/runtime Dockerfile同步 7. test_config_oss.py clear=False→clear=True修复OSS污染 8. Frontend Lint增加prettier依赖
80 lines
2.7 KiB
YAML
80 lines
2.7 KiB
YAML
name: AI Code Review
|
||
|
||
on:
|
||
pull_request:
|
||
types:
|
||
- opened
|
||
- synchronize
|
||
- reopened
|
||
|
||
# 同一个 PR 只跑一个 review,新的取消旧的
|
||
concurrency:
|
||
group: code-review-${{ gitea.repository }}-${{ gitea.event.pull_request.number }}
|
||
cancel-in-progress: true
|
||
|
||
jobs:
|
||
code-review:
|
||
name: AI Code Review
|
||
runs-on: ubuntu-latest
|
||
# 跳过草稿 PR
|
||
if: ${{ !gitea.event.pull_request.draft }}
|
||
|
||
steps:
|
||
# actions/checkout 由 runner 在宿主机层面处理,不受容器网络影响
|
||
- name: Checkout code
|
||
uses: actions/checkout@v3
|
||
with:
|
||
fetch-depth: 0
|
||
# 网络波动自动重试2次
|
||
retry:
|
||
max_attempts: 2
|
||
retry_on: error
|
||
|
||
- name: Install dependencies
|
||
run: |
|
||
# 确保 python3-pip 可用(兼容不同基础镜像)
|
||
if ! python3 -m pip --version >/dev/null 2>&1; then
|
||
apt-get update -qq && apt-get install -y -qq python3-pip python3-venv >/dev/null 2>&1
|
||
fi
|
||
# 部分镜像 ensurepip 方式兜底
|
||
if ! python3 -m pip --version >/dev/null 2>&1; then
|
||
python3 -m ensurepip --upgrade 2>/dev/null || curl -sS https://bootstrap.pypa.io/get-pip.py | python3
|
||
fi
|
||
python3 -m pip install --upgrade pip
|
||
python3 -m pip install requests
|
||
|
||
- name: Run AI Code Review
|
||
env:
|
||
# Gitea 配置(自动从运行环境获取)
|
||
GITEA_API_URL: ${{ gitea.server_url }}
|
||
GITEA_TOKEN: ${{ secrets.REVIEW_GITEA_TOKEN }}
|
||
REPO_NAME: ${{ gitea.repository }}
|
||
PR_NUMBER: ${{ gitea.event.pull_request.number }}
|
||
# LLM 提供商: coze (扣子原生Bot) / openai (OpenAI兼容)
|
||
LLM_PROVIDER: "coze"
|
||
# 扣子模式配置(默认国内站 api.coze.cn)
|
||
LLM_BASE_URL: ${{ secrets.LLM_BASE_URL }}
|
||
LLM_API_KEY: ${{ secrets.LLM_API_KEY }}
|
||
COZE_BOT_ID: ${{ secrets.COZE_BOT_ID }}
|
||
LLM_MODEL: ${{ secrets.LLM_MODEL }}
|
||
# 可选参数
|
||
MAX_DIFF_CHARS: "30000"
|
||
LLM_TIMEOUT: "120"
|
||
run: |
|
||
python3 scripts/ci_code_review.py
|
||
# 审查脚本异常不影响 CI 通过
|
||
continue-on-error: true
|
||
|
||
- name: Report CI trace
|
||
if: always()
|
||
shell: sh
|
||
env:
|
||
AGENTLOOP_LICENSE_KEY: ${{ secrets.AGENTLOOP_LICENSE_KEY }}
|
||
run: |
|
||
STATUS="ok"
|
||
[ ${{ job.status }} = "success" ] || STATUS="error"
|
||
START_TIME=""
|
||
[ -f /tmp/ci_job_start_time ] && START_TIME=$(cat /tmp/ci_job_start_time)
|
||
python3 scripts/ci/ci_trace_report.py --service xiaoxia-saas-ci --status $STATUS --start-time "$START_TIME" || true
|
||
|