Files
junhong_cmp_fiber/.gitea/workflows/deploy.yaml
huang 1e979cf017
Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Failing after 1m42s
重构部署流程:使用私有镜像仓库和标准化配置
核心改进:
1. 使用私有仓库基础镜像(极速拉取)
   - registry.boss160.cn/base/golang:1.25.6-alpine
   - registry.boss160.cn/base/alpine:3.19

2. 移除 Docker Compose 安装步骤(已在服务器永久安装)
   - 减少 51 行复杂逻辑
   - 构建时间减少 10-60 秒

3. 移除文件复制步骤(configs 已在服务器部署目录)
   - 减少 20+ 行代码
   - 简化维护流程

4. 极简化部署逻辑
   - 只保留:拉取镜像 → 重启服务 → 显示状态
   - 从 ~30 行减少到 7 行

效果:
- 净减少 68 行代码
- 工作流清晰易懂
- 构建速度提升(基础镜像从内网拉取)
- 维护成本大幅降低
2026-01-20 10:13:50 +08:00

86 lines
2.8 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: 构建并部署到测试环境(无 SSH
on:
push:
branches:
- main
- dev
- test
env:
REGISTRY: registry.boss160.cn
API_IMAGE: registry.boss160.cn/junhong/cmp-fiber-api
WORKER_IMAGE: registry.boss160.cn/junhong/cmp-fiber-worker
DEPLOY_DIR: /home/qycard001/app/junhong_cmp
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: 检出代码
run: |
git clone https://git.boss160.cn/csxj2026/junhong_cmp_fiber.git .
git checkout ${{ github.sha }}
- name: 设置镜像标签
id: tag
run: |
if [ "${{ github.ref }}" = "refs/heads/main" ]; then
echo "tag=latest" >> $GITHUB_OUTPUT
elif [ "${{ github.ref }}" = "refs/heads/dev" ]; then
echo "tag=dev" >> $GITHUB_OUTPUT
elif [ "${{ github.ref }}" = "refs/heads/test" ]; then
echo "tag=test" >> $GITHUB_OUTPUT
else
echo "tag=unknown" >> $GITHUB_OUTPUT
fi
- name: 登录 Docker Registry
run: |
echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login "${{ env.REGISTRY }}" --username "${{ secrets.REGISTRY_USERNAME }}" --password-stdin
- name: 构建 API 镜像
run: |
docker build -f Dockerfile.api -t ${{ env.API_IMAGE }}:${{ steps.tag.outputs.tag }} .
docker tag ${{ env.API_IMAGE }}:${{ steps.tag.outputs.tag }} ${{ env.API_IMAGE }}:${{ github.sha }}
- name: 构建 Worker 镜像
run: |
docker build -f Dockerfile.worker -t ${{ env.WORKER_IMAGE }}:${{ steps.tag.outputs.tag }} .
docker tag ${{ env.WORKER_IMAGE }}:${{ steps.tag.outputs.tag }} ${{ env.WORKER_IMAGE }}:${{ github.sha }}
- name: 推送镜像到 Registry
run: |
docker push ${{ env.API_IMAGE }}:${{ steps.tag.outputs.tag }}
docker push ${{ env.API_IMAGE }}:${{ github.sha }}
docker push ${{ env.WORKER_IMAGE }}:${{ steps.tag.outputs.tag }}
docker push ${{ env.WORKER_IMAGE }}:${{ github.sha }}
- name: 部署到本地(仅 main 分支)
if: github.ref == 'refs/heads/main'
run: |
cd ${{ env.DEPLOY_DIR }}
echo "📥 拉取最新镜像..."
docker compose pull
echo "🚀 重启服务..."
docker compose up -d
echo "⏳ 等待服务启动..."
sleep 10
echo "✅ 部署完成!"
docker compose ps
- name: 构建结果通知
if: always()
run: |
if [ "${{ job.status }}" = "success" ]; then
echo "✅ 构建成功: ${{ steps.tag.outputs.tag }}"
echo "📦 镜像标签: ${{ github.sha }}"
else
echo "❌ 构建失败"
fi