background grid image
Image for post changelog-improved-self-hosted-determinate-nix-action
May 29, 2025 by Graham Christensen

Changelog: improved support for self-hosted GitHub Actions runners

The determinate-nix-action, which we recently announced, now works on most self-hosted CI environments in GitHub Actions. These once-problematic environments should now work just fine:

Previously, our Action used Docker as a process supervision daemon, but this proved to be overcomplicated and buggy in certain cases. The problem is that any Docker-oriented approach only works if the Docker daemon’s root filesystem is identical to the execution environment’s root filesystem—an assumption that doesn’t always hold in reality.

Our new method is much simpler. We now spawn the Determinate Nix daemon in the background and shut it down when the job shuts down. This new approach works in all previous cases but also expands support for determinate-nix-action to a multitude of new CI environments.

If you’d like to give it a try, this example Actions workflow should do the trick:

.github/workflows/check.yaml
jobs:
check:
name: Nix checks
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
steps:
- uses: actions/checkout@v4
- name: Install Determinate Nix
uses: DeterminateSystems/determinate-nix-action@v3
- run: nix flake check -L

Share
Avatar for Graham Christensen
Written by Graham Christensen

Graham is a Nix and Rust developer, with a passion and focus on reliability in the lower levels of the stack. He founded Determinate Systems, Inc to support Nix adoption at your workplace.

Would you like access to private flakes and FlakeHub Cache?

Sign up for FlakeHub