CI 執行器
CI 執行器是執行 CI/CD 管線作業的機器:它從 CI 服務接收作業、執行其中的步驟,並回報結果。
最後更新:2026年11月11日
CI 執行器(runner)是執行 CI/CD 管線作業的實體或虛擬機器。它從 CI 服務接收作業、簽出程式碼、執行步驟,並回報結果。Jenkins 與 Azure Pipelines 將同樣的東西稱為 agent,其他系統則稱為 executor。
GitHub Actions 中的執行器如何運作
工作流程的 runs-on 標籤決定由哪個執行器接手作業:GitHub 會尋找符合作業標籤與群組的線上執行器,沒有任何執行器接手的作業會留在佇列中,並在 24 小時後失敗(GitHub 的自架執行器參考文件)。執行器應用程式透過 HTTPS 主動對外連線到 GitHub 以接收作業,在作業執行時將日誌串流回傳;若為暫時性執行器,則會在作業結束後被捨棄。
GitHub 是控制平面:它保存儲存庫、工作流程檔案、機密儲存區、日誌與檢查結果。實際工作則由執行器完成。
三種執行器
- 由 CI 廠商託管。 GitHub 託管執行器會為每個作業提供全新的虛擬機器,並按建置分鐘數計費。
- 自架。 您自己的機器,由您負責修補、隔離與擴充。請參閱代管與自架執行器比較。
- 第三方代管執行器。 由供應商營運機器,這些機器以自架執行器的身分向 GitHub 註冊。請參閱GitHub Actions 執行器供應商比較。
執行器可分為暫時性(在全新機器上只執行一個作業)與持久性(在同一台機器上執行多個作業)。暫時性執行器較安全:一個作業留下的任何東西,無論是檔案或憑證,都不會傳到下一個作業。
為什麼執行器對資安很重要
執行器是原始碼、機密與下載的相依套件匯集之處。它持有作業的權杖與雲端憑證,執行每一個套件安裝腳本,並建立建置所發出的每一條網路連線。遭入侵的相依套件會以執行器的權限運作。
因此,執行器是一道資安邊界。請將作業彼此隔離,以對外連線政策限制執行器能連線的範圍,並記錄每個作業取得的內容。
CRACI
CRACI 是 GitHub Actions 執行器。只要使用 runs-on: craci,作業就會移到 CRACI 上執行,而工作流程仍留在 GitHub 中,執行結果也仍會顯示在那裡。每個作業都在對外連線政策的管控下,於各自隔離的虛擬機器中執行,並產生其取得內容的 SBOM。請參閱CRACI 的執行器與CRACI 與 GitHub 託管執行器比較。
CRACI 目前僅為 GitHub Actions 執行 Linux 作業。GitLab CI、Jenkins、Windows 或 macOS 的執行器,需由這些廠商提供或自行架設。