创建一个简单的代码发布服务

6 篇文章 0 订阅
1 篇文章 0 订阅

每次发布代码的时候都要提交一堆文件,还要执行一堆命令,麻烦不?

下面教你怎么逐步摆脱这种苦恼。

写脚本

使用脚本是一个行之有效的方法。
在linux上直接写bash脚本,把要执行的逻辑都写在里面。具体的语法可以自行学习,这里只教你基本的。

1.声明这是一个脚本。#!/bin/bash
2.写简单的注释,以后也可以明白这个文件是干嘛用的。
3.切换目录,这样不管是进入了什么目录都可以执行脚本
4.执行前置脚本
5.执行一个判断,此时可以判断是否有参数,从而添加跟多的选择
6.继续执行脚本

#!/bin/bash
#适用于测试的脚本
cd /test-web
git fetch
if [ x$1!=x ]
then
git checkout $1
fi
git pull&&gulp build

这样就写出了一个脚本,是不是很简单。只要执行一次‘sh /test/test.sh’。用sh命令执行脚本就可以了。
tips:搜一下vim的各种快捷键对编辑有帮助。

设置别名

脚本也麻烦?那就设置别名吧!
1.打开/etc/profile
2.在最后面加入你的命令。别名命令alias+别名名称

alias wap='sh /home/test/web.sh'

3.退出编辑,执行一次source /etc/profile使最新的设置有效。
4.在随便一个地方输入wap就可以了(后面依然可以继续输入参数)
5.是不是很简单?

使用node服务

别名也麻烦?还要连接服务器?那就添加一个node服务吧!
1.使用node的‘child_process’就可以执行linux的脚本了。(保证服务器要有node)
2.创建一个index.js文件。
3.引用http监听端口,引用child_process执行脚本。
4.给文件设置权限chmod -R -a+rwx index.js
5.执行文件。(要保证服务器自己运行需要使用pm2启动)

var http = require("http");
var spawn = require('child_process');

function onRequest(request, response) {
    response.writeHead(200, { "Content-type": "text/html; charset=utf-8" });
    if (request.url.startsWith('/publish')) {
        var param = request.url.replace('/publish', '').replace('/', '');
        var ls = spawn.exec("sh /home/test/web.sh "+param);
        ls.stdout.on('data', function (data) {
            console.log(data.toString());
            response.write(data);
        });
        ls.stderr.on('data', function (data) {
            response.write(data);
        });
        ls.on("exit", function (code) {
            console.log(code);
            response.write("退出");
            response.end();
        });
    } else {
        response.write("ok");
        response.end();
    }
}
http.createServer(onRequest).listen(9090, function () {
    console.log("监听9090端口");
});

这下子只要访问页面就可以了。还能切换分支,还能看见输出。
如果在这个基础上还想继续进行,那就添加自己需要的吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疯狂紫萧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值