Files
ailine/.gitea/workflows/deploy.yml
root 602d551fd1
All checks were successful
构建并部署 AI Agent 服务 / deploy (push) Successful in 27s
配置修改
2026-04-16 04:36:50 +08:00

88 lines
3.0 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 "$DEEPSEEK_API_KEY" ]; then
echo "✅ DEEPSEEK_API_KEY 已注入(长度:${#DEEPSEEK_API_KEY}"
else
echo "⚠️ DEEPSEEK_API_KEY 未注入将使用空值DeepSeek模型不可用"
fi
if [ -n "$LLAMACPP_API_KEY" ]; then
echo "✅ LLAMACPP_API_KEY 已注入(长度:${#LLAMACPP_API_KEY}"
else
echo "⚠️ LLAMACPP_API_KEY 未注入将使用空值本地LLM不可用"
fi
echo ""
echo "💡 提示:如果看到警告,请在 Gitea 仓库 Settings → Actions → Secrets 中添加对应密钥"
env:
ZHIPUAI_API_KEY: ${{ secrets.ZHIPUAI_API_KEY }}
DEEPSEEK_API_KEY: ${{ secrets.DEEPSEEK_API_KEY }}
LLAMACPP_API_KEY: ${{ secrets.LLAMACPP_API_KEY }}
- name: 确保基础镜像已拉取
run: |
docker pull python:3.11-slim || true
docker pull postgres:16 || true
- name: 构建并启动前后端服务(环境变量注入)
env:
ZHIPUAI_API_KEY: ${{ secrets.ZHIPUAI_API_KEY }}
DEEPSEEK_API_KEY: ${{ secrets.DEEPSEEK_API_KEY }}
LLAMACPP_API_KEY: ${{ secrets.LLAMACPP_API_KEY }}
run: |
# 方式一:直接在命令前设置环境变量(推荐,避免导出遗漏)
export DOCKER_BUILDKIT=1
ZHIPUAI_API_KEY="$ZHIPUAI_API_KEY" \
DEEPSEEK_API_KEY="$DEEPSEEK_API_KEY" \
LLAMACPP_API_KEY="$LLAMACPP_API_KEY" \
docker compose -f docker/docker-compose.yml up -d --build backend frontend
- name: 健康检查
run: |
echo "等待后端服务启动..."
sleep 15
for i in {1..10}; do
# 修正端口为 8083与 compose 暴露端口一致)
if curl -f http://172.17.0.1:8083/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