feat(ci): Phase 12.3 Ollama 自動化測試 (#67-68)
新增: - CI Ollama Model Test job (連線測試 + 冒煙測試) - test_model_regression.py (4 個回歸案例 + 準確度報告) - Skills 03 更新模型選擇規則 Phase 12.1-12.2 完成記錄更新 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
48
.github/workflows/ci.yaml
vendored
48
.github/workflows/ci.yaml
vendored
@@ -215,6 +215,54 @@ jobs:
|
||||
uv run pytest tests/ --cov=src --cov-report=xml -v || true
|
||||
continue-on-error: true
|
||||
|
||||
# ==================== Ollama Model Test (Phase 12.3 #67) ====================
|
||||
# 🤖 自動化模型回歸測試 - 確保 OpenClaw 提案品質
|
||||
ollama-test:
|
||||
name: Ollama Model Test
|
||||
runs-on: [self-hosted, harbor, k8s]
|
||||
needs: api-lint
|
||||
timeout-minutes: 5
|
||||
continue-on-error: true # 不阻塞主 Pipeline
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Test Ollama Connectivity
|
||||
run: |
|
||||
echo "🔗 測試 Ollama 連線..."
|
||||
if curl -s --connect-timeout 5 http://192.168.0.188:11434/api/tags > /dev/null; then
|
||||
echo "✅ Ollama 可達"
|
||||
curl -s http://192.168.0.188:11434/api/tags | jq -r '.models[].name'
|
||||
else
|
||||
echo "⚠️ Ollama 無法連線 (192.168.0.188:11434)"
|
||||
exit 0 # 不失敗,只警告
|
||||
fi
|
||||
|
||||
- name: Model Smoke Test
|
||||
run: |
|
||||
echo "🧪 模型冒煙測試..."
|
||||
RESPONSE=$(curl -s --max-time 60 http://192.168.0.188:11434/api/generate -d '{
|
||||
"model": "qwen2.5:7b-instruct",
|
||||
"prompt": "你是 AIOps 助手。回答:1+1=?",
|
||||
"stream": false
|
||||
}' | jq -r '.response // "ERROR"')
|
||||
|
||||
if [ "$RESPONSE" != "ERROR" ] && [ -n "$RESPONSE" ]; then
|
||||
echo "✅ 模型回應正常"
|
||||
echo "回應: $RESPONSE"
|
||||
else
|
||||
echo "⚠️ 模型回應異常"
|
||||
fi
|
||||
|
||||
- name: Action Parsing Test
|
||||
working-directory: apps/api
|
||||
env:
|
||||
PYTHONPATH: ${{ github.workspace }}/apps/api
|
||||
run: |
|
||||
echo "🔍 Action Parsing 回歸測試..."
|
||||
# 只執行 action parsing 測試
|
||||
uv sync
|
||||
uv run pytest tests/test_action_parsing.py -v --tb=short || echo "⚠️ 部分測試失敗"
|
||||
|
||||
# ==================== OpenAPI Validation ====================
|
||||
openapi-validate:
|
||||
name: OpenAPI Validate
|
||||
|
||||
Reference in New Issue
Block a user