每次发布代码的时候都要提交一堆文件,还要执行一堆命令,麻烦不?
下面教你怎么逐步摆脱这种苦恼。
写脚本
使用脚本是一个行之有效的方法。
在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端口");
});
这下子只要访问页面就可以了。还能切换分支,还能看见输出。
如果在这个基础上还想继续进行,那就添加自己需要的吧。