創建一個簡單的代碼發佈服務

每次發佈代碼的時候都要提交一堆文件,還要執行一堆命令,麻煩不?

下面教你怎麼逐步擺脫這種苦惱。

寫腳本

使用腳本是一個行之有效的方法。
在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端口");
});

這下子只要訪問頁面就可以了。還能切換分支,還能看見輸出。
如果在這個基礎上還想繼續進行,那就添加自己需要的吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章