目录
一、背景
类似Jenkins的构建工具在项目维护以及部署上为开发人员节约了大量时间,但是构建工具本身也会消耗一部分服务器资源,对于服务器配置较低的小项目或个人项目,往往很难分配出相应资源运载这个"大家伙"。针对这类场景,一套简单的构建系统:能实现基本的构建任务;能实时查看构建进度及构建信息;最好能实现构建的配置化、管理化,其实就完全可以满足需求。
二、技术方案
引入node ssh2模块 实现远程ssh连接服务器并执行相关shell命令
基于WebSocket实现远程shell命令的实时数据传输,查看构建进度
通过建立构建配置表,支持多项目构建的管理
三、实现
1、基于ThinkJs+MongoDB搭建基本后端服务,并根据官方文档配置需要的websocket服务
adapter.js - ThinkJs
/**
* socketio config
* 配置websocket
*/
exports.websocket = {
type: 'socketio',
common: {
// common config
},
socketio: {
handle: socketio,
// allowOrigin: 'https://127.0.0.1', // 默认所有的域名都允许访问
path: '/socket.io', // 默认 '/socket.io'
adapter: null, // 默认无 adapter
messages: {
open: '/websocket/open&