1. 程式人生 > >建立一個簡單的程式碼釋出服務

建立一個簡單的程式碼釋出服務

每次釋出程式碼的時候都要提交一堆檔案,還要執行一堆命令,麻煩不?

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

寫指令碼

使用指令碼是一個行之有效的方法。
在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埠"); });

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