perf(ci): 添加mypy增量扫描脚本
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
# mypy憓鮋��急��𡁏𧋦 - CI銝剛���
|
||||
# �臬��㗛�: SCAN_MODE, CHANGED_PY_FILES
|
||||
|
||||
set +e
|
||||
|
||||
echo "=== Installing mypy ==="
|
||||
python3 -m pip install -q mypy
|
||||
mypy --version
|
||||
echo ""
|
||||
echo "=== Running mypy type check (advisory mode) ==="
|
||||
echo "�𡃏郎璅∪�嚗䔶裊�餅鱏CI"
|
||||
echo ""
|
||||
|
||||
MYPY_COMMON_ARGS="--ignore-missing-imports --no-site-packages --no-strict-optional --explicit-package-bases --exclude tests/|test_|migrations/|alembic/ --no-error-summary --incremental --cache-dir .mypy_cache"
|
||||
|
||||
EXIT_CODE=0
|
||||
|
||||
if [ "$SCAN_MODE" = "incremental" ] && [ -n "$CHANGED_PY_FILES" ]; then
|
||||
echo "=== Incremental mypy scan (PR mode) ==="
|
||||
echo "Changed files: $(echo $CHANGED_PY_FILES | wc -w) files"
|
||||
MYPY_FILES=""
|
||||
for f in $CHANGED_PY_FILES; do
|
||||
case "$f" in
|
||||
apps/*|packages/*)
|
||||
MYPY_FILES="$MYPY_FILES $f"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
if [ -n "$MYPY_FILES" ]; then
|
||||
echo "Checking: $MYPY_FILES"
|
||||
mypy $MYPY_FILES $MYPY_COMMON_ARGS 2>&1 | head -80 || EXIT_CODE=$?
|
||||
else
|
||||
echo "No mypy-checkable files changed, skipping"
|
||||
fi
|
||||
else
|
||||
echo "=== Full mypy scan ==="
|
||||
mypy apps/api/app packages $MYPY_COMMON_ARGS 2>&1 | head -60 || EXIT_CODE=$?
|
||||
fi
|
||||
|
||||
echo ""
|
||||
if [ "$EXIT_CODE" != "0" ]; then
|
||||
echo "mypy �𤑳緵蝐餃��桅�嚗��霅行芋撘𧶏�銝俛獈�哨�"
|
||||
echo "撱箄悅�𡒊賒�鞉郊靽桀�"
|
||||
else
|
||||
echo "mypy 蝐餃�璉��仿�朞�"
|
||||
fi
|
||||
exit 0
|
||||
Reference in New Issue
Block a user