建立一個簡單的程式碼釋出服務
阿新 • • 發佈:2019-02-18
每次釋出程式碼的時候都要提交一堆檔案,還要執行一堆命令,麻煩不?
下面教你怎麼逐步擺脫這種苦惱。
寫指令碼
使用指令碼是一個行之有效的方法。
在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埠");
});
這下子只要訪問頁面就可以了。還能切換分支,還能看見輸出。
如果在這個基礎上還想繼續進行,那就新增自己需要的吧。