CIZE 像 Gulp 一樣搭建乙個 CI 服務

2021-09-23 16:29:32 字數 3046 閱讀 9329

cize 是乙個「持續整合」工具,希望能讓開發人員更快捷的搭建乙個完整、可靠、便捷的 ci 服務。

甚至可以像 gulp 或 grunt 一樣,僅僅通過乙個cizefile.js即可完成幾乎所有的工作。

$ [sudo] npm install cize -g
新建 cizefile.js

$ mkdir your_path

$ cd your_path

$ vim cizefile.js

輸入如下內容

//定義「專案」

const demo = cize.project('demo', {});

//定義乙個 job,這是乙個最基礎的 job

demo.job('hello', function (self) );

然後,在「工作目錄」中執行cize啟動服務

$ cize

strarting...

the server on "localhost:9000" started

缺省會啟動和 cpu 核數相同的「工作程序」。

接下來,可以在瀏覽器中訪問http://localhost:9000,

並可以在 ui 中手動觸發這個名為hello的 job

const demo = cize.project('demo', );
注意,即便乙個專案不需要任何配置,也不能省略第二個引數,

沒有第二個引數時cize.project(name)為獲取指定的專案

假定現在已經有乙個定義好的名為demoproject

demo.job('test', function (self) );
這是最基礎的 job 型別,是其它 job 型別或「擴充套件」的基礎。

demo.job('test', cize.shell(function () ));
定義乙個用 shell 編寫的 job,用到了 cize.shell,這是乙個「內建擴充套件」

demo.job('test', cize.cron('* */2 * * * *', cize.shell(function () )));
如上定義了乙個每兩分種觸發一次的 job 並且,巢狀使用了 shell.

demo.job('test2', cize.by('test1', function(self));
如下,在 test1 執行成功後,將會觸發 test2

demo.job('test', cize.series([

"test1",

function(self),

"test3"

]));

series 是乙個內建擴充套件,可以定義乙個「序列執行」多個步驟的任務列表,每個步驟可以是乙個任意型別的 job,

也可以是指定要呼叫的其它 job 的名稱。

demo.job('test', cize.parallel([

"test1",

function(self),

"test3"

]));

series 是乙個內建擴充套件,可以定義乙個「並行執行」多個步驟的任務列表,每個步驟可以是乙個任意型別的 job,

也可以是指定要呼叫的其它 job 的名稱。

cize 所有的 job 可以自由巢狀,例如:

demo.job('test', cize.parallel([

"test1",

function(self),

"test3",

cize.series([

"test4",

cize.shell(function())

])]));

當你使用乙個「外部擴充套件」時,也可以混合使用。

如上用到的 cize.shell、cize.series、cize。parallel、cize.cron、cize.by 是 cize 默契認包含的「內建擴充套件」。

編寫乙個「外部擴充套件」和「內建擴充套件」並無本質區別,如下:

module.exports = function(options...);

};

如查需要在 job 定義時進行一些處理,可以使用register,如下

module.exports = function(options...),

runable: function(self)

};};

可以將擴充套件發布為乙個「npm 包」,讓更多的人使用。

可以通過一些選擇去控制 ci 服務的埠、金鑰等,有兩種方式,如下

cize.config();
cize ./ -p=port -s=secret
通過 cize -h 可以檢視完整的說明

usage:

cize [folder|file] [options]

options:

-w set the number of workers

-p set the port

-s set the secret

-h display help information

example:

cize ./ -p=9000 -s=12345 -w=4

像外行一樣思考,像專家一樣實踐

像外行一樣思考,像專家一樣實踐,不只是說說而已。題記 看了試讀的章節有些日子,看完了試讀部分,其中一部分是能和我共鳴,還有一部分觀點,自己也比較贊成,但貌似又有些抽象。我想,書不單是用來讀的,讀一本好書,就像吃肉一樣,吸收書中的營養,把營養轉換為自己的血液,直到骨髓中,成為生命中的一部分。像外行一樣...

《像外行一樣思考,像專家一樣實踐》

這本書是在看 暗時間 時收集到的,書的副標題是科研成功之道,自己是個資訊工作者,也號稱科研工作者,雖然經常忙著一些雜活,沒有時間認真思考和做實驗。但從中找點立項 研究 演講 總結的經驗也是有益的。這本書的目錄比較有特點,竟然佔了12頁,基本上看了目錄也能了解了書的主要思想和內容。專家由於他受固有思想...

像黑客一樣思考,像安全專家一樣做事

用不同的視角看待問題,安全威脅也會不同。我們在對應用系統進行安全構建時也是如此。雖然,我們有通用的漏洞列表和其他以最佳實踐形式存在的指導材料可供參考,然而,要真正保護我們的軟體,我們需要從黑客的視角對應用程式進行認真考慮,然後以安全專家的身份去解決其中的問題。一 像黑客一樣思考 1 黑客要對我們進行...