探索跑者

已完成

GitHub 執行器是執行 GitHub Actions 工作流程的計算資源。 每個執行器一次都可以執行單一作業。 它們可讓開發人員直接從 GitHub 存放庫執行組建、測試和部署工作。 GitHub 執行器有兩種主要類型:

  • GitHub 裝載的執行器會虛擬化或容器化計算資源,並由 GitHub 提供和管理。
  • 自我裝載執行器是 GitHub 使用者和組織自行布建和管理的實體、虛擬化或容器化計算資源。

每個類型都有一些獨特的特性、具有一些不同的功能,而且需要數個不同的考慮。

請務必注意,GitHub 強烈建議您不要在公用存放庫中使用自行架設的執行器。 這樣做會造成重大的安全性風險,因為它可能會允許任何人在組織的私人環境中執行程序代碼。

GitHub 裝載的執行器

GitHub 裝載的執行器提供方便的解決方案,可在 GitHub Actions 內執行工作流程,而不需要管理基礎硬體和軟體元件。 其設計目的是要根據需求自動調整規模,以確保尖峰使用期間的最佳效能。 GitHub 為 GitHub 裝載的執行器提供數個預先設定的環境,涵蓋不同的軟體設定和作系統,包括 Ubuntu Linux、Microsoft Windows 和 macOS。

GitHub 託管的執行器包含作業系統的預設內建的工具。 例如,Ubuntu 和 macOS 運行器包括 grep、find 和 which。 若要識別所有預安裝於執行器上的其他工具,用戶可以檢閱每個 Windows 和 Ubuntu 執行器映像檔的軟體材料清單(SBOM)。 或者,使用者可以檢閱工作流程記錄中設定作業區段的執行器映射子區段。 [包含的軟體] 專案後面的連結描述執行器上執行工作流程的所有預安裝工具。 您也可以在 GitHub 裝載的執行器上安裝其他軟體,方法是建立將套件安裝為現有工作流程的一部分的工作。

GitHub 裝載的執行器會在 GitHub 的雲端基礎結構上執行,利用虛擬機或容器來執行工作流程。 每個工作流程執行都會在自己的環境中隔離,以確保安全性和重現性。 GitHub 所托管的執行個體與 GitHub Actions 無縫整合,使使用者能夠直接在 GitHub 存儲庫內的工作流程中引用它們。

使用 GitHub 裝載的執行器時,GitHub Actions 使用方式有一些限制。 特別是,工作流程中的每個作業最多有6小時的運行時間。 如果作業達到此限制,作業就會終止且無法完成。 每個工作流程執行限制為35天。 如果工作流程執行達到此限制,則會取消其執行。 此期間包括執行期間,以及等候和核准所花費的時間。

先決條件

實作 GitHub 裝載的執行器之前,用戶必須先有 GitHub 存放庫,才能使用 GitHub Actions 定義工作流程。 所有可存取 GitHub Actions 的 GitHub 使用者都可以使用執行器。

實施

與自我裝載的執行器不同,GitHub 裝載的執行器會自動布建為個別工作流程執行的一部分。 使用者會將工作流程定義為儲存在 GitHub 存放庫中 .github/workflows 目錄中的 YAML 格式檔案。 在工作流程組態中,使用者指定所需的運行環境,包括作業系統和軟體依賴項。 每當觸發工作流程時,會視需要設定具有相符規格的執行器,每個作業都有一個執行器。 觸發器可以是手動或自動的,這取決於例如程式碼推送、提取請求或存放庫分派事件等事件。
GitHub 裝載的執行器會使用 GitHub Actions 所提供的令牌或認證,向 GitHub 進行驗證。 他們依賴內建連線能力與 GitHub 平台通訊,以及下載工作流程成品。

維護

GitHub 會管理 GitHub 裝載的執行器的更新和維護,確保它們與最新的軟體版本和安全性修補程式保持 up-to日期。 執行器中包含的軟體工具會每周更新。 執行程序的活動會被監視並被記錄,方便追蹤工作流程的執行和疑難排解。

授權和成本

GitHub 託管的執行器包含在 GitHub Actions 的定價中,超過免費層級的工作流程分鐘數將依據使用量進行計費。 使用者受益於自動化且具成本效益的擴充,因為 GitHub 會根據需求自動配置和釋放執行器。

自我裝載的執行器

相較於 GitHub 裝載的執行器,自我裝載的執行環境可提供更大的控制和自定義選項,執行環境能夠容納更廣泛的需求。 它們可以部署在內部部署或雲端中,視網路連線、成本和資源可用性等準則而定。

自我裝載的執行器會由使用者布建和管理,讓他們完全掌控執行環境。 它們完全可自定義,包括硬體規格、軟體組態和網路設定。 它們也可協助整合現有的基礎結構和工具,將相容性和互作性問題的可能性降到最低。

與 GitHub 裝載的執行器不同,完成個別作業執行和工作流程執行所花費的時間沒有限制。

先決條件

用戶必須在所選的基礎結構上設定並配置自行架設的執行器,包括安裝執行器軟體和任何其他軟體相依套件。 自我載入執行器的原始碼可在 GitHub 上以開放原始碼專案的形式取得,https://github.com/actions/runner。 每個自我裝載的執行器會作為與 GitHub Actions 通訊以執行工作流程的代理程式。

自我裝載執行器需要輸出網路連線、驗證認證和授權,才能存取 GitHub 平台並下載工作流程成品。 根據跑者的位置,可能需要設定防火牆規則以滿足這些需求。

實施

如同 GitHub 裝載的執行器,實作牽涉到定義 YAML 格式的工作流程,並將其儲存在 GitHub 存放庫中的 .github/workflows 目錄。 不過,為了讓工作流程使用自我裝載執行器,用戶必須先註冊它們,以提供必要的驗證令牌或認證。 在註冊中,使用者會指定執行器名稱、標籤和執行環境參數等特性。

註冊可以在企業內的不同層級進行:

  • 存放庫層級 (單一存放庫)
  • 組織層級 (組織中的多個存放庫)
  • 企業層級 (企業中的多個組織)

維護

用戶負責更新和維護自我裝載的執行器,包括安裝軟體更新和安全性修補程式。 維護也牽涉到監視執行器健康情況和效能,以及針對執行器運行時間中出現的任何問題進行疑難解答。

授權和成本

自建運行器除了 GitHub Actions 的定價以及任何相關的基礎設施成本(包括計算、儲存和網路)之外,不會產生額外的授權費用。 優化資源配置和使用率會成為用戶的責任。