auto-deploy-to-aliyun.yml 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. name: Deploy to Aliyun ECS after Merge
  2. on:
  3. workflow_run:
  4. workflows: ['Auto Merge aliyun'] # 监听名为 "Auto Merge aliyun" 的工作流的运行结果
  5. types:
  6. - completed
  7. jobs:
  8. deploy:
  9. # 只有当合并工作流成功完成时才运行部署工作流
  10. if: github.event.workflow_run.conclusion =='success'
  11. runs-on: ubuntu-latest
  12. steps:
  13. - name: Checkout
  14. uses: actions/checkout@v4
  15. with:
  16. fetch-depth: 0 # 如果未启用 lastUpdated,则不需要
  17. - uses: pnpm/action-setup@v3
  18. with:
  19. version: 9
  20. - name: Setup Node
  21. uses: actions/setup-node@v4
  22. with:
  23. node-version: 18
  24. cache: pnpm
  25. - name: Install dependencies
  26. run: pnpm i
  27. - name: Build with VitePress
  28. run: pnpm run docs:build
  29. - name: Deploy to ECS
  30. uses: appleboy/ssh-action@v0.1.0 # 使用 ssh-action 将文件传输并部署到服务器
  31. with:
  32. host: ${{ secrets.SERVER_IP }}
  33. username: ${{ secrets.SERVER_USERNAME }}
  34. password: ${{ secrets.SSH_PASSWORD }} # 从 Secrets 中获取 SSH 密码
  35. script: |
  36. # 创建或确保目标目录存在
  37. mkdir -p /usr/share/nginx/html
  38. # 将本地构建的 dist 目录内容复制到服务器的 nginx html 目录,添加 -o StrictHostKeyChecking=no 参数
  39. scp -r -o StrictHostKeyChecking=no ${{ github.workspace }}/docs/.vitepress/dist/* ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_IP }}:/usr/share/nginx/html/
  40. # 重启 nginx 服务,添加 -o StrictHostKeyChecking=no 参数
  41. ssh -o StrictHostKeyChecking=no ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_IP }} "sudo systemctl restart nginx"