CI管道配置一定要用YAML嗎?一個名為DSCI的開源項(xiàng)目給出了另一種答案——直接用你熟悉的編程語言來寫。
這個項(xiàng)目定位為Forgejo CI的Runner,但它的管道語法完全拋棄了YAML,轉(zhuǎn)而采用Python、Raku等普通編程語言。項(xiàng)目由開發(fā)者melezhik在GitHub上開源,他希望讓CI配置回歸程序員最舒適的方式。
![]()
使用起來也非常簡單:只需要在代碼倉庫根目錄的.dsci/文件夾里放入兩個文件——一個YAML格式的任務(wù)清單,其中指定任務(wù)ID、路徑和參數(shù);另一個則是真正的腳本文件,比如job.py或job.raku。在腳本里,你可以用config()拿到清單里傳入的參數(shù),然后像寫常規(guī)程序一樣完成任務(wù)邏輯。
由于底層是完整的編程語言,DSCI把CI流程的靈活性拉到了一個新高度。任務(wù)與任務(wù)之間可以直接用變量傳遞狀態(tài),也可以讓單個任務(wù)返回狀態(tài)供后續(xù)使用,這在傳統(tǒng)YAML編織出來的復(fù)雜配置里通常需要大量繞彎的語法才能實(shí)現(xiàn)。項(xiàng)目文檔強(qiáng)調(diào):“一切能在編程語言里做的事情,這里都可以做——輕松、有趣且靈活。”
目前DSCI已經(jīng)與Forgejo CI通過Webhooks機(jī)制完成深度集成,理論上任何支持Webhooks的CI系統(tǒng),包括GitHub、GitLab等,也都能對接。項(xiàng)目方歡迎開發(fā)者前往GitHub倉庫melezhik/DSCI star,并根據(jù)安裝指南親自動手試試。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.