Testing pull requests

Many people are developing new features or fixing bugs on GitHub. To help with engine development, you can test those pull requests with a Godot build that includes code from the pull request in question.

Your feedback on any pull request is helpful to improve it and to test whether it works as intended. This can speed up the review process and improve the chance of the PR being merged.

What exactly needs to be tested depends on the pull request in question. For example, when the pull request changes the editor, you should try the feature in as many ways as you can think of. If the pull request is claiming a performance improvement, try to test this yourself by benchmarking or profiling.

Downloading a compiled build

Thanks to GitHub Actions, all pull requests have continuous builds available. These builds let you try out pull requests without having to compile anything from source.

Since only signed in users may download builds directly from GitHub Actions, the procedure varies depending on whether you have a GitHub account or not.

Note

Due to a GitHub Actions limitation, builds are only available for 90 days after the pull request was last updated. If you still wish to try a pull request locally, you can compile the pull request branch from source instead.

If you have a GitHub account

  • Open the pull request page. Click the Checks tab near the top of the page:

../_images/testing_pull_requests_access_checks.webp
  • Click the Artifacts dropdown on the right of the page:

../_images/testing_pull_requests_checks_artifacts.webp
  • In the dropdown, click the artifact's name to download it. Remember to scroll if you cannot see the name of the platform you're looking for:

../_images/testing_pull_requests_checks_artifacts_list.webp
  • Extract the ZIP archive then run the executable. Note that Windows and macOS binaries are not code signed. This means you may have to bypass a security warning before you can run the executable. On Windows, if you frequently test pull request builds, it may be better to disable Windows SmartScreen permanently in the Windows security settings. On macOS, see Running on macOS for instructions on bypassing Gatekeeper.

If you don't have a GitHub account

If you don't have a GitHub account and can't sign up for one, you can use the third-party nightly.link service to generate a universal download link.

  • Open the pull request page. Click the fork's branch name near the top of the page:

../_images/testing_pull_requests_access_fork.png
  • Now that you are on the fork's branch page, click the .github folder at the top of the file list. Then, click on the workflows folder (which is inside the .github folder). Click the workflow file for the platform you wish to download artifacts for. After clicking on the file (which opens the file view), copy the page URL from your browser's address bar.

  • Open the nightly.link website and paste the URL you just copied into the text field located below the heading Paste a GitHub link, get a nightly.link!. After pasting the URL, click Get links on the right. If the format of the URL you pasted is correct, you should be presented with a page like this:

../_images/testing_pull_requests_nightly_link.png
  • Click the URL of the artifact you wish to download.

  • Extract the ZIP archive then run the executable. Note that Windows and macOS binaries are not code signed. This means you may have to bypass a security warning before you can run the executable. If you frequently test pull request builds, it may be better to disable Windows SmartScreen or disable macOS Gatekeeper permanently.

Compiling a pull request branch from source

This approach may be needed for pull requests that were last updated more than 90 days ago, or to test on platforms and configurations that are not supported by Godot's GitHub Actions setup.

Downloading a zipped pull request branch

  • Open the pull request page. Click the fork's branch name near the top of the page:

../_images/testing_pull_requests_access_fork.png
  • Now that you are on the fork's branch page, click the green Code button on the right of the page then choose Download ZIP in the dropdown:

../_images/testing_pull_requests_fork_zip.png

Checking out a pull request branch with git

Alternatively, you can checkout the pull request directly with git:

  • Open the pull request page. Note the pull request number (PR_NUMBER), and the branch name (BRANCH_NAME), but without the user name.

../_images/testing_pull_requests_command_line_checkout.webp
  • Construct the command using this pattern:

git fetch upstream pull/PR_NUMBER/head:BRANCH_NAME

So for the pull request above, the actual command will be:

# Fetch PR branch locally
git fetch upstream pull/48734/head:editor_file_dialog_filter_sort
  • Once the pull request finishes downloading, checkout its branch:

git checkout editor_file_dialog_filter_sort