在 Ubuntu 上实现 Node.js 的自动化部署可以通过多种工具和方法来完成,下面将详细介绍如何使用 GitHub Actions 来实现前端项目的自动化部署。
1. 项目准备
- 代码托管:确保你的项目代码已经托管在 GitHub 上。
- GitHub Pages:如果你打算将项目部署到 GitHub Pages,确保你有一个 GitHub Pages 站点,或者准备部署到自己的服务器。
2. 创建 GitHub Actions 工作流
在你的项目根目录下创建一个 .github/workflows
文件夹,然后在其中创建一个 deploy.yml
文件,内容如下:
name: Deploy to GitHub Pages on: push: branches: - main jobs: build-and-deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Node.js uses: actions/setup-node@v3 with: node-version: '18' # 你可以根据需要选择合适的 Node.js 版本 - name: Install dependencies run: npm install - name: Build project run: npm run build - name: Deploy to GitHub Pages uses: JamesIves/github-pages-deploy-action@v4 with: branch: gh-pages folder: dist # Vite 默认构建输出目录
3. 启用 GitHub Pages
进入你的 GitHub 仓库的 Settings,在左侧菜单选择 Pages,选择 gh-pages
分支,点击 Save。等待 GitHub Actions 运行完毕,你的前端项目就会自动部署到 https://<你的用户名>.github.io/<你的仓库名>/
。
4. 部署到自己的服务器(Nginx + GitHub Actions)
如果你的前端项目需要部署到自己的服务器,可以使用 scp
命令进行自动上传。修改 deploy.yml
文件如下:
name: Deploy to Server on: push: branches: - main jobs: build-and-deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Node.js uses: actions/setup-node@v3 with: node-version: '18' - name: Install dependencies run: npm install - name: Build project run: npm run build - name: Deploy to Server env: SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} SERVER_USER: "your-user" SERVER_HOST: "your-server-ip" DEPLOY_PATH: "/var/www/html" run: | echo "$SSH_PRIVATE_KEY" > private_key.pem chmod 600 private_key.pem scp -o StrictHostKeyChecking=no -r dist/* $SERVER_USER@$SERVER_HOST:$DEPLOY_PATH
需要在 GitHub Secrets 配置 SSH_PRIVATE_KEY
,用于 SSH 免密登录服务器。DEPLOY_PATH
是你的服务器 Web 目录,Nginx 需要指向这个路径。
5. 常见问题与优化
- 环境变量:可以在 GitHub Secret 中配置环境变量。
- 处理构建产物:确保构建产物(如
dist
目录)正确生成并上传。 - 日志记录:查看 GitHub Actions 的运行日志,以便调试和优化部署流程。
通过上述步骤,你可以实现 Node.js 项目的自动化部署,提高开发效率和部署的可靠性。