每次發佈代碼的時候都要提交一堆文件,還要執行一堆命令,麻煩不?
下面教你怎麼逐步擺脫這種苦惱。
寫腳本
使用腳本是一個行之有效的方法。
在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端口");
});
這下子只要訪問頁面就可以了。還能切換分支,還能看見輸出。
如果在這個基礎上還想繼續進行,那就添加自己需要的吧。