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:
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