ick 是一個持續集成(CI)系統。訪問 ick.liw.fi/ 獲取更多信息。

更加詳細的內容如下:

首個公開版本發行

這個世界可能並不需要又一個持續集成系統(CI),但是我需要。我對我嘗試過或者看過的持續集成系統感到不滿意。更重要的是,有幾樣我感興趣的東西比我所聽說過的持續集成系統要強大得多。因此我開始編寫我自己的 CI 系統。

我的新個人業餘項目叫做 ick。它是一個 CI 系統,這意味著它可以運行自動化的步驟來構建、測試軟體。它的主頁是 ick.liw.fi/,下載頁面有指向源代碼、.deb 包和用來安裝的 Ansible 腳本的鏈接。

我現已發布了首個公開版本,綽號 ALPHA-1,版本號 0.23。(LCTT 譯註:截止至本譯文發布,已經更新到 ALPHA-6)它現在是 alpha 品質,這意味著它並沒擁有期望的全部特性,如果任何一個它已有的特性工作的話,那真是運氣好。

誠邀貢獻

ick 目前是我的個人項目。我希望能讓它不僅限於此,同時我也誠邀更多貢獻。訪問治理頁面查看章程,入門頁面查看如何開始貢獻的的小建議,聯繫頁面查看如何聯絡。

架構

ick 擁有一個由幾個通過 HTTPS 協議通信使用 RESTful API 和 JSON 處理結構化數據的部分組成的架構。訪問架構頁面了解細節。

宣告

持續集成(CI)是用於軟體開發的強大工具。它不應枯燥、易潰或惱人。它構建起來應簡單快速,除非正在測試、構建的代碼中有問題,不然它應在後台安靜地工作。

一個持續集成系統應該簡單、易用、清楚、乾淨、可擴展、快速、綜合、透明、可靠,並推動你的生產力。構建它不應花大力氣、不應需要專門為 CI 而造的硬體、不應需要頻繁留意以使其保持工作、開發者永遠不必思考為什麼某樣東西不工作。

一個持續集成系統應該足夠靈活以適應你的構建、測試需求。只要 CPU 架構和操作系統版本沒問題,它應該支持各種操作者。

同時像所有軟體一樣,CI 應該徹徹底底的免費,你的 CI 應由你做主。

(目前的 ick 僅稍具雛形,但是它會嘗試著有朝一日變得完美 —— 在最理想的情況下。)

未來的夢想

長遠來看,我希望 ick 擁有像下面所描述的特性。落實全部特性可能需要一些時間。

  • 各種事件都可以觸發構建。時間是一個明顯的事件,因為項目的源代碼倉庫改變了。更強大的是任何依賴的改變,不管依賴是來自於 ick 構建的另一個項目,或者是包(比如說來自 Debian):ick 應當跟蹤所有安裝進一個項目構建環境中的包,如果任何一個包的版本改變,都應再次觸發項目構建和測試。
  • ick 應該支持構建於(或針對)任何合理的目標平台,包括任何 Linux 發行版,任何自由的操作系統,以及任何一息尚存的不自由的操作系統。
  • ick 應該自己管理構建環境,並且能夠執行與構建主機或網路隔離的構建。這部分工作:可以要求 ick 構建容器並在容器中運行構建。容器使用 systemd-nspawn 實現。 然而,這可以改進。(如果您認為 Docker 是唯一的出路,請為此提供支持。)
  • ick 應當不需要安裝任何專門的代理,就能支持各種它能夠通過 ssh 或者串口或者其它這種中性的交流管道控制的 操作者(worker)。ick 不應默認它可以有比如說一個完整的 Java Runtime,如此一來,操作者就可以是一個微控制器了。
  • ick 應當能輕鬆掌控一大批項目。我覺得不管一個新的 Debian 源包何時上傳,ick 都應該要能夠跟得上在 Debian 中構建所有東西的進度。(明顯這可行與否取決於是否有足夠的資源確實用在構建上,但是 ick 自己不應有瓶頸。)
  • 如果有需要的話 ick 應當有選擇性地補給操作者。如果所有特定種類的操作者處於忙碌中,且 ick 被設置成允許使用更多資源的話,它就應該這麼做。這看起來用虛擬機、容器、雲提供商等做可能會簡單一些。
  • ick 應當靈活提醒感興趣的團體,特別是關於其失敗的方面。它應允許感興趣的團體通過 IRC、Matrix、Mastodon、Twitter、email、SMS 甚至電話和語音合成來接受通知。例如「您好,感興趣的團體。現在是四點鐘您想被通知 hello 包什麼時候為 RISC-V 構建好。」

請提供反饋

如果你嘗試過 ick 或者甚至你僅僅是讀到這,請在上面分享你的想法。在聯繫頁面查看如何發送反饋。相比私下反饋我更偏愛公開反饋。但如果你偏愛私下反饋,那也行。


via: blog.liw.fi/posts/2018/

作者:Lars Wirzenius 譯者:tomjlw 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

推薦閱讀:

相关文章