觸發工作流程

已完成

不應允許任何人直接將變更推送至程式碼存放庫中的主分支。 在理想情況下,如果需要任何開發,您應該對分支中的程式碼複本進行變更。

常見的方法是使用功能分支,其中分支用來處理功能。 例如,資料科學小組可能需要改善模型效能,並嘗試使用超參數值進行實驗來執行這項操作。 小組可以建立分支、更新定型指令碼中的超參數值。 一旦完成實驗,資料科學家就可以建立提取要求,將分支與主要存放庫合併

使用分支和提取要求可讓您先驗證程式代碼的任何變更,再將這些變更與主分支合併。 提取要求也可以作為觸發程序,以讓 GitHub Actions 將需要遵循程式碼建議更新的工作自動化,例如自動程式碼品質檢查。

若要搭配使功能型開發與自動化,您必須:

  • 建立分支保護規則,以封鎖直接推送至主分支的作業。
  • 建立分支以更新程式碼。
  • 在開啟提取要求時觸發 GitHub Actions 工作流程。

建立分支保護規則

為了保護程式碼,您想要封鎖任何直接推送至主分支的作業。 封鎖直接推送的作業表示不允許任何人直接將任何程式碼變更推送至主分支。 相反地,您可以藉由合併提取要求來變更主分支。

若要保護主分支,請在 GitHub 中啟用分支保護規則

  1. 瀏覽至存放庫中的 [設定] 索引標籤。
  2. 在 [設定] 索引標籤的 [程式碼和自動化] 底下,選取 [分支]
  3. 選取新增規則
  4. 在 [分支名稱模式] 下,輸入 main
  5. 啟用 [合併前要求提取請求] 和 [需要核准]
  6. 儲存您的變更。

在 GitHub 中設定分支保護規則的螢幕擷取畫面。

建立分支以更新程式碼。

每當您要編輯程式碼時,都必須建立分支並在該處工作。 一旦要進行最終變更,您可以建立提取要求,將功能分支與主分支合併。

觸發 GitHub Actions 工作流程

最後,您可能想要使用建立提取要求作為 GitHub Actions 工作流程的觸發程序。 例如,您想要在每當有人變更程式碼時,執行一些程式碼品質檢查。

只有當編輯過的程式碼通過品質檢查,且已有人驗證過建議的變更時,您才想要實際合併提取要求。

若要觸發 GitHub Actions 工作流程,您可以使用 on: [pull_request]。 當您使用此觸發程序時,工作流程會在每次建立提取要求時執行。

如果您想要在合併提取要求時執行工作流程,則必須使用另一個觸發程序。 合併提取要求基本上是推送至主分支的作業。 因此,若要在合併提取要求時觸發執行工作流程,請在 GitHub Actions 工作流程中使用下列觸發程序:

on:
  push:
    branches:
      - main