CI/CD
CRACI 就是執行您建置的執行器
CRACI 是從軟體供應鏈安全的角度重新打造的 CI/CD。您的 GitHub Actions 工作流程在 CRACI 自有的執行器上執行,而在執行過程中,CRACI 會觀察它們取用的每一個外部相依套件。
更新日期
一行就能轉移建置
CRACI 取代的是執行器,而不是 GitHub Actions。您的工作流程檔案、actions 與機密都維持原樣;改變的只是作業執行的位置:
jobs:
build:
runs-on: craci 執行結果仍會顯示在 GitHub 中,因此 pull request、檢查與日誌都留在團隊平常查看的地方。負責這項設定的是 GitHub App,您可以將它安裝在所有或選定的儲存庫上。
執行器的規格
- 規格從 1 到 32 個運算單位,每個單位為 1 vCPU 與 3 GB RAM,預設為 2。可透過
cracicorp/setup@v1及其size:輸入,為每個作業設定規格。 - 原生 x86-64 與 ARM64,費率相同。
- 映像檔:CRACI Slim、CRACI Slim ARM64,以及與 GitHub 相容的 Ubuntu 24.04 映像檔,內含 Docker Engine、Buildx 與 Compose v2。
- 每個作業使用隔離的虛擬機器。巢狀虛擬化已在 x86-64 上提供,在 ARM64 上為預覽。
- 快取:GitHub Actions 快取,加上容器層快取:本機、遠端與 bind mount 層快取。
- 管線基礎設施:固定的對外連線 IP 範圍,以及組織層級的執行器範本。
- 目前支援 Linux。Windows 與 macOS 執行器已列入產品藍圖。
執行器由 CRACI 代管,在歐洲的裸機基礎設施上執行,資料落地於歐盟。客戶自行託管的執行器已列入 Enterprise 的產品藍圖;兩者的取捨請參閱代管與自架執行器的比較。
為何供應鏈安全應該放在執行器上
正式環境的建置並不是筆電上的建置。版本範圍的解析結果不同、標籤會移動、快取有冷有熱,環境也不一樣。唯一可靠的出貨內容紀錄,是在發布建置執行當下取得的紀錄,因此 CRACI 把紀錄器放在執行器裡,而不是放在旁邊。完整的論述請見為何供應鏈安全應放在 CI 中。
由於 CRACI 掌握執行器,它能做到掃描工具做不到的事:
- 記錄,而非掃描。能辨識套件的代理伺服器會觀察作業實際下載的內容,包括遞移相依套件,以及從 CI 快取還原的套件。每個作業的 SBOM 都附有完整性狀態。
- 執行對外連線政策。政策在執行器上強制執行,在作業開始前完成驗證,並採失效即封鎖(fail closed)。
- 回傳佐證資料。API 會回傳每個作業的 SBOM、網路追蹤紀錄與來源證明。
速度約為 GitHub 託管執行器的兩倍
在相同且無需修改的工作流程上,CRACI 執行建置的速度約為 GitHub 標準託管執行器的兩倍。原本需要十分鐘的作業,約五分鐘就能完成。
更快的 CI,價值遠超過省下的分鐘數。五分鐘內就通過的 pull request,審查者還在看;需要二十分鐘的,作者早已切換到別的工作。建置時間是從寫下變更到得知它是否可行之間的間隔,團隊中每位工程師每次 push 都要付出這段時間。
速度來自三項因素:硬體、更短的等待時間,以及快取。
加速的成本
由於 CRACI 按秒計量,且每分鐘收費更低,兩倍的速度會讓節省效果加乘,而不是互相抵銷。以在 GitHub 託管 2 核心 x64 執行器上需要十分鐘的建置為例(GitHub 牌價為 2026 年 9 月資料,CRACI 為 2026 年 10 月資料):
| 十分鐘的建置,每月 1,000 次 | GitHub 託管 | CRACI |
|---|---|---|
| 每次建置的實際耗時 | 10 分鐘 | 約 5 分鐘 |
| 每次建置的成本 | $0.060 | $0.020 |
| 每月成本 | 約 $60 | 約 $20 |
這相當於降低約 67%,也就是便宜 3 倍。若不計加速效果,節省的就只有牌價差距,在 2 核心 x64 上約為 33%。您自己的建置能快多少取決於工作負載,因此請先轉移一個工作流程並實際測量。
按秒計費
建置分鐘數按秒計量,四捨五入至最接近的秒數。GitHub 會將每個作業無條件進位到整分鐘,因此由短作業組成的矩陣,會為從未使用的時間付費:30 秒的作業在 CRACI 上約便宜 67%,70 秒的作業約便宜 61%。作業越長,差距就越接近牌價差距。
建置分鐘數為每 vCPU 分鐘 $0.002,規格 2 的執行器為每分鐘 $0.004,ARM64 費率相同。CRACI 並不是市場上最便宜的執行器,價格也不是我們的論點:我們的論點是執行器在執行時記錄了什麼。請參閱價格方案。若要拿您自己的 GitHub 帳單與 CRACI 比較,請使用 GitHub Actions 價格計算機。
CRACI 與其他 GitHub Actions 執行器的比較
Blacksmith、Depot、Namespace 與 WarpBuild 的運作方式都與 CRACI 相同:工作流程留在 GitHub Actions 上,改變作業執行的位置。在速度與價格上,它們彼此相近,其中幾家的 ARM 牌價比 CRACI 更低。差別在於作業執行期間,執行器記錄與控管了什麼。
| 功能 | CRACI | GitHub 託管 | Blacksmith | Depot | Namespace | WarpBuild |
|---|---|---|---|---|---|---|
| 2 vCPU Linux x64,每分鐘 | $0.004 | $0.006 | $0.004 | 超出方案分鐘數後 $0.006 | 方案內 $0.002,超額 $0.003 | $0.004 |
| 計量方式 | 按秒 | 無條件進位至分鐘 | 未說明 | 按秒 | 按分鐘,最少 1 分鐘 | 按分鐘 |
| 容器層快取 | 未說明 | |||||
| 執行器上的對外連線(egress)政策 | 依來源類型設定,失效即封鎖 | Azure 私人網路 | 固定 IP | IP 與主機名稱規則 | 網域規則,建議模式 | BYOC 安全性群組 |
| 記錄每個作業取用內容的 SBOM | 每個作業的完整性 | 以 Syft 掃描映像檔 | ||||
| 經簽署的建置來源證明 | 無簽署的來源證明 | 證明,SLSA L2 或 L3 | BuildKit 映像檔證明 | |||
| Windows 與 macOS | 目前僅支援 Linux | Windows 為 Beta |
- 支援
- 部分支援
- 不支援
- 已列入產品藍圖
CRACI 是最實惠的執行器之一,而且正是能產生作業實際取用內容的 SBOM、執行失效即封鎖的對外連線政策,並透過 API 回傳來源證明資料的執行器。這些都是執行建置的副產品,工作流程中不需要加入任何東西。如需逐項的完整比較,請見 GitHub Actions 執行器比較。
適合在 CRACI 上執行的工作
GitHub Actions 作業能做的任何事:應用程式建置、容器映像檔、測試套件。特別值得一提的兩種情況是嵌入式 Linux 映像檔的 Yocto 與 BitBake 建置(文件記載最高可使用規格 32 的執行器),以及 Raspberry Pi OS 的 pi-gen 建置。
產品藍圖
- Windows 與 macOS 執行器:已列入產品藍圖。
- 客戶自行託管的執行器:已列入產品藍圖,適用於 Enterprise。
- 其他 CI 系統:目前支援 GitHub Actions,其他系統已列入產品藍圖,尚無時程。