name: 构建并部署
run-name: ${{ gitea.actor }} 正在部署 Quant Speed Page 🚀

on:
  push:
    branches:
      - main

jobs:
  build-and-deploy:
    runs-on: ubuntu
    steps:
      - name: 检出代码
        uses: actions/checkout@v3

      # 1. 登录 Docker Registry
      # 如果你使用 Docker Hub，请在 Gitea 仓库设置 -> Secrets 中配置 DOCKERHUB_USERNAME 和 DOCKERHUB_TOKEN
      - name: 登录到 Docker Hub
        uses: docker/login-action@v2
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}

      # 2. 构建并推送镜像
      - name: 构建并推送 Docker 镜像
        uses: docker/build-push-action@v4
        with:
          context: .
          push: true
          # 镜像标签，这里使用了 Docker Hub 用户名作为前缀
          tags: ${{ secrets.DOCKERHUB_USERNAME }}/quant-speed-page:latest

      # 3. 部署到服务器
      # 请在 Gitea 仓库设置 -> Secrets 中配置 SERVER_HOST, SERVER_USER, SERVER_PASSWORD
      - name: 部署到服务器
        uses: appleboy/ssh-action@master
        with:
          host: ${{ secrets.SERVER_HOST }}
          username: ${{ secrets.SERVER_USER }}
          password: ${{ secrets.SERVER_PASSWORD }}
          script: |
            # 停止并删除旧容器（如果存在）
            docker stop quant-speed-page || true
            docker rm quant-speed-page || true
            
            # 拉取最新镜像
            docker pull ${{ secrets.DOCKERHUB_USERNAME }}/quant-speed-page:latest
            
            # 启动新容器
            # -d: 后台运行
            # --restart unless-stopped: 除非手动停止，否则自动重启
            # -p 80:80: 映射端口
            docker run -d \
              --name quant-speed-page \
              --restart unless-stopped \
              -p 80:80 \
              ${{ secrets.DOCKERHUB_USERNAME }}/quant-speed-page:latest
