zyc 229d86e158
All checks were successful
Build and Deploy Log Center / build-and-deploy (push) Successful in 2m28s
fix: 修复数据库迁移事务中断问题,补充 k8s-monitor 构建流水线
- database.py: 使用 IF NOT EXISTS 避免 PostgreSQL 事务中断导致后续迁移 SQL 不执行
- deploy.yaml: 补充 k8s-pod-monitor 镜像构建和 CronJob 部署步骤

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 10:30:36 +08:00

92 lines
3.1 KiB
YAML

name: Build and Deploy Log Center
on:
push:
branches:
- main
- master
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
with:
config-inline: |
[registry."docker.io"]
mirrors = ["https://docker.m.daocloud.io", "https://docker.1panel.live", "https://hub.rat.dev"]
- name: Login to Huawei Cloud SWR
uses: docker/login-action@v2
with:
registry: ${{ secrets.SWR_SERVER }}
username: ${{ secrets.SWR_USERNAME }}
password: ${{ secrets.SWR_PASSWORD }}
# Build API Image
- name: Build and Push API
uses: docker/build-push-action@v4
with:
context: .
file: ./Dockerfile
push: true
provenance: false
tags: ${{ secrets.SWR_SERVER }}/${{ secrets.SWR_ORG }}/log-center-api:latest
# Build Web Image
- name: Build and Push Web
uses: docker/build-push-action@v4
with:
context: ./web
file: ./web/Dockerfile
push: true
provenance: false
tags: ${{ secrets.SWR_SERVER }}/${{ secrets.SWR_ORG }}/log-center-web:latest
build-args: |
VITE_API_BASE_URL=https://qiyuan-log-center-api.airlabs.art
# Build K8s Monitor Image
- name: Build and Push K8s Monitor
uses: docker/build-push-action@v4
with:
context: ./k8s-monitor
file: ./k8s-monitor/Dockerfile
push: true
provenance: false
tags: ${{ secrets.SWR_SERVER }}/${{ secrets.SWR_ORG }}/k8s-pod-monitor:latest
- name: Setup Kubectl
run: |
curl -LO "https://files.m.daocloud.io/dl.k8s.io/release/v1.28.2/bin/linux/amd64/kubectl"
chmod +x kubectl
mv kubectl /usr/local/bin/
- name: Deploy to K3s
uses: Azure/k8s-set-context@v3
with:
method: kubeconfig
kubeconfig: ${{ secrets.KUBE_CONFIG }}
- name: Update K8s Manifests
run: |
echo "Environment: Production"
# Replace image placeholders
sed -i "s|\${CI_REGISTRY_IMAGE}/log-center-api:latest|${{ secrets.SWR_SERVER }}/${{ secrets.SWR_ORG }}/log-center-api:latest|g" k8s/api-deployment-prod.yaml
sed -i "s|\${CI_REGISTRY_IMAGE}/log-center-web:latest|${{ secrets.SWR_SERVER }}/${{ secrets.SWR_ORG }}/log-center-web:latest|g" k8s/web-deployment-prod.yaml
sed -i "s|\${CI_REGISTRY_IMAGE}/k8s-pod-monitor:latest|${{ secrets.SWR_SERVER }}/${{ secrets.SWR_ORG }}/k8s-pod-monitor:latest|g" k8s/monitor-cronjob.yaml
# Apply configurations
kubectl apply -f k8s/api-deployment-prod.yaml
kubectl apply -f k8s/web-deployment-prod.yaml
kubectl apply -f k8s/ingress.yaml
kubectl apply -f k8s/monitor-cronjob.yaml
# Restart deployments
kubectl rollout restart deployment/log-center-api
kubectl rollout restart deployment/log-center-web