76 lines
2.4 KiB
YAML
76 lines
2.4 KiB
YAML
name: 构建并部署 AI Agent 服务
|
||
|
||
on:
|
||
push:
|
||
branches: [ main, master ]
|
||
workflow_dispatch:
|
||
|
||
jobs:
|
||
deploy:
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
- name: 检出代码
|
||
uses: actions/checkout@v4.1.1
|
||
|
||
- name: 检查 Python 环境
|
||
run: |
|
||
python3 --version
|
||
pip3 --version
|
||
|
||
- name: 验证 Secrets 配置
|
||
run: |
|
||
echo "🔐 检查环境变量注入情况..."
|
||
|
||
if [ -n "$ZHIPUAI_API_KEY" ]; then
|
||
echo "✅ ZHIPUAI_API_KEY 已注入(长度:${#ZHIPUAI_API_KEY})"
|
||
else
|
||
echo "⚠️ ZHIPUAI_API_KEY 未注入(将使用空值,智谱模型不可用)"
|
||
fi
|
||
|
||
if [ -n "$VLLM_LOCAL_KEY" ]; then
|
||
echo "✅ VLLM_LOCAL_KEY 已注入(长度:${#VLLM_LOCAL_KEY})"
|
||
else
|
||
echo "⚠️ VLLM_LOCAL_KEY 未注入(将使用空值,本地模型不可用)"
|
||
fi
|
||
|
||
echo ""
|
||
echo "💡 提示:如果看到警告,请在 Gitea 仓库 Settings → Actions → Secrets 中添加对应密钥"
|
||
env:
|
||
ZHIPUAI_API_KEY: ${{ secrets.ZHIPUAI_API_KEY }}
|
||
VLLM_LOCAL_KEY: ${{ secrets.VLLM_LOCAL_KEY }}
|
||
|
||
- name: 确保基础镜像已拉取
|
||
run: |
|
||
docker pull python:3.11-slim || true
|
||
docker pull postgres:16 || true
|
||
|
||
- name: 构建并启动前后端服务(环境变量注入)
|
||
env:
|
||
ZHIPUAI_API_KEY: ${{ secrets.ZHIPUAI_API_KEY }}
|
||
VLLM_LOCAL_KEY: ${{ secrets.VLLM_LOCAL_KEY }}
|
||
run: |
|
||
export DOCKER_BUILDKIT=1
|
||
docker compose -f docker/docker-compose.yml up -d --build backend frontend
|
||
|
||
- name: 健康检查
|
||
run: |
|
||
echo "等待后端服务启动..."
|
||
sleep 15
|
||
for i in {1..10}; do
|
||
# 使用 Docker 默认网桥网关 IP (172.17.0.1) 访问宿主机的端口映射
|
||
if curl -f http://172.17.0.1:8001/health > /dev/null 2>&1; then
|
||
echo "✅ 后端服务正常"
|
||
exit 0
|
||
fi
|
||
echo "等待中... ($i/10)"
|
||
sleep 5
|
||
done
|
||
echo "❌ 后端服务未就绪,查看日志:"
|
||
docker compose -f docker/docker-compose.yml logs backend --tail 50
|
||
exit 1
|
||
|
||
- name: 清理无用的 Docker 资源
|
||
run: docker system prune -f
|
||
|
||
- name: 显示运行状态
|
||
run: docker compose -f docker/docker-compose.yml ps |