返回

Node.js + Gitee实现自动化部署

后端

引言
在当今快节奏的软件开发环境中,自动化部署对于快速、可靠地交付软件至关重要。使用Node.js和Gitee,您可以轻松设置一个自动化部署系统,该系统可以在代码更改时自动构建、测试和部署您的应用程序。这不仅可以节省您的时间和精力,还可以确保您的应用程序始终是最新的。

先决条件

  • CentOS 7操作系统
  • Node.js 12或更高版本
  • Gitee账户
  • Nginx Web服务器

步骤1:设置Node.js HTTP服务

  1. 创建一个新的Node.js项目目录。

  2. 在项目目录中,运行以下命令安装Express框架:

npm install express
  1. 创建一个名为“server.js”的文件,并添加以下代码:
const express = require('express');

const app = express();

app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.listen(3000, () => {
  console.log('Server is listening on port 3000');
});
  1. 运行以下命令启动HTTP服务:
node server.js

步骤2:配置Gitee Webhooks

  1. 登录您的Gitee账户并导航到您的项目。

  2. 单击“设置”选项卡,然后选择“Webhooks”。

  3. 单击“添加Webhook”按钮,然后输入以下信息:

  • 名称: 输入一个有意义的名称,例如“Node.js部署”。
  • URL: 输入您的HTTP服务的URL,例如“http://localhost:3000/deploy”。
  • 事件: 选择“Push”。
  • 内容类型: 选择“JSON”。
  1. 单击“添加Webhook”按钮。

步骤3:创建Shell脚本

  1. 在项目目录中,创建一个名为“deploy.sh”的文件,并添加以下代码:
#!/bin/bash

# 构建HTTP服务
cd http-service
npm install
npm run build

# 构建NestJS项目
cd ../nestjs-project
npm install
npm run build

# 重启HTTP服务
cd ../http-service
forever restart server.js

# 部署前端Vue项目
cd ../vue-project
npm install
npm run build
sudo cp -r dist /var/www/html

# 重启Nginx
sudo systemctl restart nginx
  1. 确保脚本具有可执行权限:
chmod +x deploy.sh

步骤4:设置Forever

  1. 全局安装Forever:
npm install forever -g
  1. 在HTTP服务的项目目录中,运行以下命令启动Forever:
forever start server.js

步骤5:配置Nginx

  1. 打开Nginx配置文件,通常位于“/etc/nginx/nginx.conf”。

  2. 添加以下配置:

server {
  listen 80;
  server_name example.com;

  location / {
    root /var/www/html;
    index index.html;
  }
}
  1. 重新加载Nginx:
sudo systemctl reload nginx

结论

现在,您已经成功地设置了一个自动化部署系统,该系统可以在代码更改时自动构建、测试和部署您的应用程序。这将为您节省时间和精力,并确保您的应用程序始终是最新的。