name: Deploy flashNotes-ai to aliyun Ubuntu Server
 
on:
  push:
    branches:
      - main  # 监听 main 分支的 push 事件
 
jobs:
  deploy:
    runs-on: ubuntu-latest
 
    steps:
      - name: 🔄 检出代码
        uses: actions/checkout@v3
 
      - name: ⚙️ 设置 Node.js 环境
        uses: actions/setup-node@v3
        with:
          node-version: 23.9.0 
 
      - name: 📦 安装依赖
        run: npm install
 
      - name: 🔧 运行构建(本地测试)
        run: npm run build
 
      - name: 🚀 部署到远程服务器
        uses: appleboy/ssh-action@v0.1.4
        with:
          host: ${{ secrets.SERVER_HOST }}
          username: ${{ secrets.SERVER_USER }}
          key: ${{ secrets.SERVER_SSH_KEY }}
          script: |
            cd /var/www/flashNotes-ai  # 请替换为你的前端项目路径
            git pull origin main
            npm install
            npm run build
 

流程拆解

步骤运行在哪?作用
checkoutGitHub Actions拉取代码
setup-nodeGitHub Actions确保 Node.js 版本正确
npm installGitHub Actions安装依赖(在 GitHub 服务器上)
npm run buildGitHub Actions本地测试构建
ssh-action远程 Ubuntu 服务器连接服务器并执行命令
git pull origin main远程 Ubuntu 服务器拉取最新代码
npm install远程 Ubuntu 服务器安装依赖
npm run build远程 Ubuntu 服务器重新构建前端项目

reference