Skip to content

Commit

Permalink
Merge pull request #207 from cachix/always-allow-substitutes
Browse files Browse the repository at this point in the history
Enable `always-allow-substitutes` by default
  • Loading branch information
domenkozar committed May 15, 2024
2 parents 8887e59 + 5dce380 commit 262815e
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 1 deletion.
27 changes: 26 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ or [pin nixpkgs yourself](https://nix.dev/reference/pinning-nixpkgs)
- Allows specifying extra Nix configuration options via `extra_nix_config`
- Allows specifying `$NIX_PATH` and channels via `nix_path`
- Share `/nix/store` between builds using [cachix-action](https://github.com/cachix/cachix-action) for simple binary cache setup to speed up your builds and share binaries with your team
- Enables `flakes` and `nix-command` experimental features by default (to disable, set `experimental-features` via `extra_nix_config`)
- Enables KVM on supported machines: run VMs and NixOS tests with full hardware-acceleration

## Usage

Expand Down Expand Up @@ -75,6 +75,31 @@ To install Nix from any commit, go to [the corresponding installer_test action](

- `enable_kvm`: whether to enable KVM for hardware-accelerated virtualization on Linux. Enabled by default if available.


## Differences from the default Nix installer

Some settings have been optimised for use in CI environments:

- `nix.conf` settings. Override these defaults with `extra_nix_config`:

- The experimental `flakes` and `nix-command` features are enabled. Disable by overriding `experimental-features` in `extra_nix_config`.

- `max-jobs` is set to `auto`.

- `show-trace` is set to `true`.

- `$USER` is added to `trusted-users`.

- `$GITHUB_TOKEN` is added to `access_tokens` if no other `github_access_token` is provided.

- `always-allow-substitutes` is set to `true`.

- `ssl-cert-file` is set to `/etc/ssl/cert.pem` on macOS.

- KVM is enabled on Linux if available. Disable by setting `enable_kvm: false`.

- `$TMPDIR` is set to `$RUNNER_TEMP` if empty.

---

## FAQ
Expand Down
5 changes: 5 additions & 0 deletions install-nix.sh
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,11 @@ fi
if [[ ! $INPUT_EXTRA_NIX_CONFIG =~ "experimental-features" ]]; then
add_config "experimental-features = nix-command flakes"
fi
# Always allow substituting from the cache, even if the derivation has `allowSubstitutes = false`.
# This is a CI optimisation to avoid having to download the inputs for already-cached derivations to rebuild trivial text files.
if [[ ! $INPUT_EXTRA_NIX_CONFIG =~ "always-allow-substitutes" ]]; then
add_config "always-allow-substitutes = true"
fi

# Nix installer flags
installer_options=(
Expand Down

0 comments on commit 262815e

Please sign in to comment.