Review a pull request by booting it
Recorded: Sept. 14, 2026, 5 a.m.
| Original | Summarized |
Review a pull request by booting it | Farid Zakaria’s Blog Skip to content Farid Zakaria 2026-09-09 Review a pull request by booting it tl;dr; trynix-preview is a GitHub action that comments a link on a pull request which lets you boot the PR’s build in the browser using https://trynix.dev. No servers, just browsers. I ended my earlier trynix post with a list of ideas I think we could accomplish now that we can boot arbitrary /nix/store paths in the browser. The most obvious one was to let a reviewer boot a pull request’s build in the browser for testing, validation and feedback. Click the link and a Linux machine boots in your tab with that PR’s sqlelf on PATH. The action publishes and builds nothing. Whatever already fills your cache keeps doing it, and the action’s whole job is to simply provide the store paths via nix eval and hand the cache’s URL and public key to the browser. Improve this pageEdit @ 550c3ab · RSS /nix/store/m4qxd9r5y0v7syl8pl9xfjrhzz4ccczi-fzakaria.com |
The trynix-preview GitHub action introduces a method for allowing reviewers to boot a pull request's build directly in a web browser via https://trynix.dev, eliminating the need for managing separate servers, SSH, VPNs, Docker, VMs, or cloud infrastructure. This capability stems from the ability to expose arbitrary /nix/store paths in the browser, which is demonstrated by allowing a Linux machine to boot into a tab showing the pull request's software on PATH without any traditional cloning or building steps. The mechanism requires that the necessary build and caching steps are already completed before the action can link to the artifacts. The action itself does not perform any building or caching; its function is merely to provide the necessary store paths by referencing a shared cache URL and public key. The author recommends using Cachix as the cache provider due to its open-source nature, although testing is possible without it since the free tier is generous. For security and workflow integrity, it is advised to set allow-unsafe-pr-checkout to true in the actions step, as the workflow runs on forks, and maintaining a private segregated cache is recommended to prevent forks from pushing to the main cache. Alternatively, the workflow can be triggered by a maintainer typing /trynix on the pull request. The overall workflow involves building the pull request code, pushing the result to a cache, and then using the trynix action to surface these store paths for browser execution. While this development showcases the extensive power of Nix workflows, the system currently faces performance limitations when executing large binaries. Even with recent improvements, large binaries can still require one to two minutes to execute. To address this, the author added a benchmark page to the site detailing boot and run times for various applications. Nevertheless, the action remains an amazing demonstration of Nix's power, but it is currently best suited for small to medium-sized binaries, with the expectation that future advancements in optimization may allow for faster execution of larger binaries. |