All checks were successful
Build and Deploy Log Center / build-and-deploy (push) Successful in 2m24s
新增两种日志来源(cicd / deployment),使日志中台覆盖"构建→部署→运行"全链路: 后端变更: - models.py: 新增 LogSource 枚举和 source 字段,file_path/line_number 改为可选 - main.py: 按来源生成不同指纹策略,所有查询端点支持 source 筛选,仪表盘新增来源分布统计 - database.py: 新增 4 条迁移 SQL(source 字段、索引、字段可空) - task_manager.py: 修复 Agent 仅拉取 runtime 来源的缺陷 新增组件: - k8s-monitor/: K8s Pod 健康监控脚本(Python),每 5 分钟检测异常 Pod 并上报 - k8s/monitor-cronjob.yaml: CronJob + RBAC 部署清单 - scripts/report-cicd-error.sh: CI/CD 错误上报 Bash 脚本 - scripts/gitea-actions-example.yaml: Gitea Actions 集成示例 前端变更: - api.ts: 类型定义更新,支持 source 字段 - BugList.tsx: 新增来源筛选标签页和来源列 - BugDetail.tsx: 按来源条件渲染(CI/CD 信息、部署信息),非 runtime 禁用修复按钮 - Dashboard.tsx: 新增来源分布表格 - index.css: 来源标签样式(source-badge) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
88 lines
2.9 KiB
YAML
88 lines
2.9 KiB
YAML
# Gitea Actions 集成示例 - 构建失败时自动上报到 Log Center
|
|
#
|
|
# 将以下步骤添加到你的 .gitea/workflows/deploy.yaml 中
|
|
# 放在可能失败的构建步骤之后
|
|
|
|
name: Build and Deploy
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
|
|
env:
|
|
LOG_CENTER_URL: https://qiyuan-log-center-api.airlabs.art
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
# ===== 你的构建步骤 =====
|
|
- name: Build Docker Image
|
|
id: build
|
|
run: |
|
|
docker build -t myapp:latest .
|
|
|
|
- name: Run Tests
|
|
id: test
|
|
run: |
|
|
docker run myapp:latest python -m pytest
|
|
|
|
# ===== 失败上报步骤 =====
|
|
- name: Report Build Failure
|
|
if: failure() && steps.build.outcome == 'failure'
|
|
run: |
|
|
curl -s -X POST "${LOG_CENTER_URL}/api/v1/logs/report" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"project_id": "'"${GITHUB_REPOSITORY##*/}"'",
|
|
"environment": "cicd",
|
|
"level": "ERROR",
|
|
"source": "cicd",
|
|
"commit_hash": "'"$GITHUB_SHA"'",
|
|
"error": {
|
|
"type": "DockerBuildError",
|
|
"message": "Docker build failed",
|
|
"file_path": null,
|
|
"line_number": null,
|
|
"stack_trace": ["Build step failed. Check CI logs for details."]
|
|
},
|
|
"context": {
|
|
"workflow_name": "'"$GITHUB_WORKFLOW"'",
|
|
"job_name": "'"$GITHUB_JOB"'",
|
|
"step_name": "Build Docker Image",
|
|
"run_id": "'"$GITHUB_RUN_ID"'",
|
|
"branch": "'"$GITHUB_REF_NAME"'",
|
|
"repository": "'"$GITHUB_REPOSITORY"'"
|
|
}
|
|
}' --connect-timeout 5 --max-time 10 || true
|
|
|
|
- name: Report Test Failure
|
|
if: failure() && steps.test.outcome == 'failure'
|
|
run: |
|
|
curl -s -X POST "${LOG_CENTER_URL}/api/v1/logs/report" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"project_id": "'"${GITHUB_REPOSITORY##*/}"'",
|
|
"environment": "cicd",
|
|
"level": "ERROR",
|
|
"source": "cicd",
|
|
"commit_hash": "'"$GITHUB_SHA"'",
|
|
"error": {
|
|
"type": "TestFailure",
|
|
"message": "Tests failed in CI pipeline",
|
|
"file_path": null,
|
|
"line_number": null,
|
|
"stack_trace": ["Test step failed. Check CI logs for details."]
|
|
},
|
|
"context": {
|
|
"workflow_name": "'"$GITHUB_WORKFLOW"'",
|
|
"job_name": "'"$GITHUB_JOB"'",
|
|
"step_name": "Run Tests",
|
|
"run_id": "'"$GITHUB_RUN_ID"'",
|
|
"branch": "'"$GITHUB_REF_NAME"'",
|
|
"repository": "'"$GITHUB_REPOSITORY"'"
|
|
}
|
|
}' --connect-timeout 5 --max-time 10 || true
|