Files
xiaoxia-saas/scripts/ci/validate_style.sh
T
xiaoxia 72f47592a9
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (push) Has been cancelled
CI/CD Pipeline / Check if frontend-only change (push) Has been cancelled
CI/CD Pipeline / Validate - Style (push) Has been cancelled
CI/CD Pipeline / Validate - Security (push) Has been cancelled
CI/CD Pipeline / Validate - Python (mypy + alembic) (push) Has been cancelled
CI/CD Pipeline / Unit Tests (push) Has been cancelled
CI/CD Pipeline / Integration Tests (push) Has been cancelled
CI/CD Pipeline / Frontend Lint (push) Has been cancelled
CI/CD Pipeline / Frontend Unit Tests (push) Has been cancelled
CI/CD Pipeline / PR Build API Image (push) Has been cancelled
CI/CD Pipeline / PR Build Web Image (push) Has been cancelled
CI/CD Pipeline / PR Build Worker Image (push) Has been cancelled
CI/CD Pipeline / Check push changed paths (push) Has been cancelled
CI/CD Pipeline / Build Staging API Image (push) Has been cancelled
CI/CD Pipeline / Build Staging Web Image (push) Has been cancelled
CI/CD Pipeline / Build Staging Worker Image (push) Has been cancelled
CI/CD Pipeline / Retag skipped Staging API Image (push) Has been cancelled
CI/CD Pipeline / Retag skipped Staging Web Image (push) Has been cancelled
CI/CD Pipeline / Retag skipped Staging Worker Image (push) Has been cancelled
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Has been cancelled
CI/CD Pipeline / Staging E2E Tests (push) Has been cancelled
CI/CD Pipeline / Staging API Integration Tests (push) Has been cancelled
CI/CD Pipeline / Build Production API Image (push) Has been cancelled
CI/CD Pipeline / Build Production Web Image (push) Has been cancelled
CI/CD Pipeline / Build Production Worker Image (push) Has been cancelled
CI/CD Pipeline / Deploy Production (push) Has been cancelled
CI/CD Pipeline / Production Browser E2E (push) Has been cancelled
CI/CD Pipeline / ACR Image Cleanup (push) Has been cancelled
CI/CD Pipeline / Canary Release to Production (push) Has been cancelled
CI/CD Pipeline / CI Gate (push) Has been cancelled
AI Code Review / AI Code Review (pull_request) Has been cancelled
PR Automation / Auto Approve on CI Green (pull_request) Has been cancelled
PR Automation / Auto Merge on CI Green + Approved (pull_request) Has been cancelled
Preview Deploy / Deploy Preview Environment (pull_request) Has been cancelled
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 5m45s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 6m8s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 378h20m1s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 378h20m2s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 378h20m3s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 378h20m4s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 378h20m2s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 378h50m49s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 378h50m50s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 378h50m51s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 378h50m59s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 378h51m37s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 378h51m39s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 378h51m41s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 378h57m55s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 378h58m33s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 378h59m30s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 378h57m57s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 378h59m32s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 379h3m52s
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 2s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 1s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 9m1s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 27m46s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 12m29s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 40m34s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 33m58s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 54s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 31s
CI/CD Pipeline / CI Gate (pull_request) Successful in 1s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 378h54m16s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 379h32m12s
fix(ci): 安全/风格检查 pip install 加固——防缓存损坏导致 CI 失败
问题:Gitea Actions cache 返回损坏归档时(cache EOF/deserialization failed),
pip install pip-audit/detect-secrets/vulture 因 hash mismatch 直接 exit 1,
导致 validate-security/validate-style 整体失败。

修复:
- detect-secrets/pip-audit/vulture 安装加 --no-cache-dir
- pip-audit 安装失败后 graceful skip(本身是 advisory-only)
- detect-secrets 安装失败后重试一次 --no-binary
- vulture 安装失败后 skip 死代码检测(本身是 advisory-only)
2026-08-31 20:16:34 +08:00

43 lines
1.6 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# CI Validate: 代码风格检查(validate-style)
# 包含:Python 字节码编译、black 格式、isort 排序、ruff lint、vulture 死代码(仅告警)
set -eu
echo "=== CI Validate: 代码风格检查 ==="
# --- Python 字节码编译 ---
echo ""
echo "=== [1/3] Python bytecode compilation ==="
python3 -m compileall -q alembic apps packages tests scripts
echo "✅ Bytecode compilation passed"
# --- 代码格式检查(全量)---
echo ""
echo "=== [2/3] Code formatting (black + isort + ruff) ==="
echo "Full scan mode"
python3 -m black --check --fast alembic apps packages tests scripts
python3 -m isort --check-only alembic apps packages tests scripts
python3 -m ruff check apps packages tests --statistics
echo "✅ Code formatting checks passed"
# --- Vulture 死代码检测(仅告警)---
echo ""
echo "=== [3/3] Dead code detection (vulture, advisory only) ==="
set +e
python3 -m pip install -q --no-cache-dir vulture || echo "⚠️ vulture install failed, skipping dead code detection"
vulture --version
echo "告警模式,不阻断CI。置信度>=90%建议尽快确认。"
echo ""
vulture apps packages scripts \
--exclude "tests,test,migrations,.gitea,docs,node_modules,site-packages,*/test_*.py,*/conftest.py" \
--min-confidence 70 \
2>&1 | sort -t'(' -k2 -rn | head -80
echo ""
echo "=== vulture scan summary ==="
echo "发现潜在死代码(可能包含框架装饰器注册的函数,为误报)"
echo "建议:定期人工审查高置信度(>=90%)条目"
set -e
echo ""
echo "=== CI Validate: 代码风格检查 全部通过 ✅ ==="