測試拉取請求(Pull Request)

許多人正在 GitHub 上開發新功能或修正錯誤。為協助引擎開發,你可能會被請求測試包含該拉取請求內程式碼的 Godot 編譯版本。

多虧有 GitHub Actions,所有 拉取請求 都有持續整合建構可用。這些建構讓你不必自行從原始碼編譯,也能直接試用拉取請求的內容。

下載已編譯的建構檔

你可以從 GitHub Actions 下載拉取請求的建構檔。由於只有已登入的使用者能直接下載,依照你是否有 GitHub 帳號,步驟會有所不同。

備註

由於 GitHub Actions 有限制,建構檔僅在拉取請求最後一次更新後的 90 天內可下載。如果你還是想在本機測試,可以改為 從原始碼編譯拉取請求分支

如果你有 GitHub 帳號

  • 打開拉取請求頁面,點擊頁面頂端的 Checks 標籤:

../../_images/testing_pull_requests_access_checks.webp
  • 點擊頁面右側的 Artifacts 下拉選單:

../../_images/testing_pull_requests_checks_artifacts.webp
  • 在下拉選單中,點擊工件的名稱以下載。如未看到所需平台,記得滾動頁面:

../../_images/testing_pull_requests_checks_artifacts_list.webp
  • 解壓縮 ZIP 檔案後,執行可執行檔。請注意,Windows 和 macOS 的二進位檔案**沒有簽署程式碼**,這表示你可能需要先繞過安全警告才能執行。在 Windows 上,若你經常測試這類建構,可以考慮在安全性設定中永久停用 Windows SmartScreen。在 macOS 上,請參考 在 macOS 上執行 Godot 應用程式 以瞭解如何繞過 Gatekeeper。

如果你沒有 GitHub 帳號

若你沒有 GitHub 帳號且無法註冊,可以使用第三方的 nightly.link 服務來產生通用下載連結。

  • 開啟拉取請求頁面,點擊頂端的 fork 分支名稱:

../../_images/testing_pull_requests_access_fork.png
  • 此時你在 fork 的分支頁面,請點擊檔案列表頂端的 .github 資料夾,接著點選裡面的 workflows 資料夾。點擊你想下載工件的平台對應的 workflow 檔案。點擊檔案(進入檔案檢視)後,從瀏覽器的網址列複製該頁面 URL。

  • 打開 nightly.link 網站,將剛才複製的 URL 貼到 Paste a GitHub link, get a nightly.link! 標題下方的文字框內。貼上後,點選右側的 Get links。若格式正確,會顯示如下頁面:

../../_images/testing_pull_requests_nightly_link.png
  • 點選你想下載的工件連結。

  • 解壓縮 ZIP 檔案,然後執行可執行檔。請注意,Windows 和 macOS 的二進位檔案沒有簽署程式碼,因此你執行前可能要先繞過安全警告。若你經常測試這類建構,可以考慮永久停用 Windows SmartScreen,或 停用 macOS Gatekeeper

從原始碼編譯拉取請求分支

對於最後更新超過 90 天的拉取請求,或者要在 Godot GitHub Actions 未支援的平台和設定上測試,可以用這種方式。

下載壓縮後的拉取請求分支

  • 開啟拉取請求頁面,點擊頂端的 fork 分支名稱:

../../_images/testing_pull_requests_access_fork.png
  • 這時你在 fork 的分支頁面,請點擊頁面右側綠色的 Code 按鈕,然後在下拉選單中選擇 Download ZIP

../../_images/testing_pull_requests_fork_zip.png
  • 解壓縮 ZIP 檔案後,依照你的作業系統參考 編譯 說明進行。

使用 git 取得拉取請求分支

你也可以直接用 git 取得拉取請求分支:

  • 開啟拉取請求頁面,記下拉取請求的 編號PR_NUMBER)以及 分支名稱BRANCH_NAME,不包含使用者名稱)。

../../_images/testing_pull_requests_command_line_checkout.webp
  • 依下列格式組合指令:

git fetch upstream pull/PR_NUMBER/head:BRANCH_NAME

因此對於上方的拉取請求,實際指令會是:

# Fetch PR branch locally
git fetch upstream pull/48734/head:editor_file_dialog_filter_sort
  • 下載完成後,切換到該分支:

git checkout editor_file_dialog_filter_sort
  • 接著依照你的作業系統,參考 編譯 說明操作。