Files
billai/.gitea/workflows/deploy.yaml
CHE LIANG ZHAO 99ec5ea0a4
Some checks failed
Deploy BillAI / Deploy to Production (push) Failing after 0s
chore: workflow 添加部署路径日志输出
2026-01-26 17:56:30 +08:00

69 lines
2.0 KiB
YAML

# BillAI 自动部署工作流
# 当 master 分支有 push 时自动触发部署
name: Deploy BillAI
on:
push:
branches:
- master
jobs:
deploy:
name: Deploy to Production
runs-on: self-hosted
steps:
- name: Checkout code
run: |
echo "=== 拉取最新代码 ==="
echo "部署路径: ${{ vars.DEPLOY_PATH }}"
cd ${{ vars.DEPLOY_PATH }}
git fetch origin master
git reset --hard origin/master
echo "当前版本: $(git log -1 --format='%h %s')"
- name: Build and deploy
run: |
echo "=== 构建并部署服务 ==="
cd ${{ vars.DEPLOY_PATH }}
docker compose up -d --build --remove-orphans
- name: Cleanup
run: |
echo "=== 清理旧镜像 ==="
docker image prune -f
- name: Health check
run: |
echo "=== 健康检查 ==="
echo "等待服务启动..."
sleep 15
# 通过 Docker 健康检查状态判断(不依赖端口暴露)
check_container() {
local name=$1
local container=$2
local status=$(docker inspect --format='{{.State.Health.Status}}' "$container" 2>/dev/null)
if [ "$status" = "healthy" ]; then
echo "✓ $name 服务正常"
return 0
else
echo "✗ $name 服务异常 (状态: $status)"
return 1
fi
}
FAILED=0
check_container "Web" "billai-web" || FAILED=1
check_container "Server" "billai-server" || FAILED=1
check_container "Analyzer" "billai-analyzer" || FAILED=1
check_container "MongoDB" "billai-mongodb" || FAILED=1
if [ $FAILED -eq 0 ]; then
echo "=== 部署成功 ==="
else
echo "=== 部署失败:部分服务异常 ==="
docker compose ps
exit 1
fi