| 
						
						
						
						 |  | @@ -1,6 +1,6 @@ | 
			
		
	
		
		
			
				
					
					|  |  |  | # install-nix-action |  |  |  | # install-nix-action | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | Installs [Nix](https://nixos.org/nix/) on GitHub Actions for the supported platforms: Linux and macOS. |  |  |  | Installs [Nix](https://nixos.org/nix/) on GitHub Actions for the supported platforms: Linux and macOS. | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -13,12 +13,12 @@ or [pin nixpkgs yourself](https://nix.dev/reference/pinning-nixpkgs.html) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | - Quick installation (~4s on Linux, ~20s on macOS) |  |  |  | - Quick installation (~4s on Linux, ~20s on macOS) | 
			
		
	
		
		
			
				
					
					|  |  |  | - Multi-User installation (with sandboxing enabled only on Linux) |  |  |  | - Multi-User installation (with sandboxing enabled only on Linux) | 
			
		
	
		
		
			
				
					
					|  |  |  | - [Self-hosted github runner](https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners) support |  |  |  | - [Self-hosted GitHub runner](https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners) support | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | - Allows specifying Nix installation URL via `install_url` (the oldest supported Nix version is 2.3.5) |  |  |  | - Allows specifying Nix installation URL via `install_url` (the oldest supported Nix version is 2.3.5) | 
			
		
	
		
		
			
				
					
					|  |  |  | - Allows specifying extra Nix configration options via `extra_nix_config` |  |  |  | - Allows specifying extra Nix configuration options via `extra_nix_config` | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | - Allows specifying `$NIX_PATH` and channels via `nix_path` |  |  |  | - 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 |  |  |  | - 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 `flakes` and `nix-command` experimental features by default (to disable, set `experimental-features` via `extra_nix_config`) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | ## Usage |  |  |  | ## Usage | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -34,13 +34,12 @@ jobs: | 
			
		
	
		
		
			
				
					
					|  |  |  |     runs-on: ubuntu-latest |  |  |  |     runs-on: ubuntu-latest | 
			
		
	
		
		
			
				
					
					|  |  |  |     steps: |  |  |  |     steps: | 
			
		
	
		
		
			
				
					
					|  |  |  |     - uses: actions/checkout@v3 |  |  |  |     - uses: actions/checkout@v3 | 
			
		
	
		
		
			
				
					
					|  |  |  |     - uses: cachix/install-nix-action@v18 |  |  |  |     - uses: cachix/install-nix-action@v19 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |       with: |  |  |  |       with: | 
			
		
	
		
		
			
				
					
					|  |  |  |         nix_path: nixpkgs=channel:nixos-unstable |  |  |  |         nix_path: nixpkgs=channel:nixos-unstable | 
			
		
	
		
		
			
				
					
					|  |  |  |     - run: nix-build |  |  |  |     - run: nix-build | 
			
		
	
		
		
			
				
					
					|  |  |  | ``` |  |  |  | ``` | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | ## Usage with Flakes |  |  |  | ## Usage with Flakes | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | ```yaml |  |  |  | ```yaml | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -53,7 +52,7 @@ jobs: | 
			
		
	
		
		
			
				
					
					|  |  |  |     runs-on: ubuntu-latest |  |  |  |     runs-on: ubuntu-latest | 
			
		
	
		
		
			
				
					
					|  |  |  |     steps: |  |  |  |     steps: | 
			
		
	
		
		
			
				
					
					|  |  |  |     - uses: actions/checkout@v3 |  |  |  |     - uses: actions/checkout@v3 | 
			
		
	
		
		
			
				
					
					|  |  |  |     - uses: cachix/install-nix-action@v18 |  |  |  |     - uses: cachix/install-nix-action@v19 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |       with: |  |  |  |       with: | 
			
		
	
		
		
			
				
					
					|  |  |  |         github_access_token: ${{ secrets.GITHUB_TOKEN }} |  |  |  |         github_access_token: ${{ secrets.GITHUB_TOKEN }} | 
			
		
	
		
		
			
				
					
					|  |  |  |     - run: nix build |  |  |  |     - run: nix build | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -66,11 +65,11 @@ To install Nix from any commit, go to [the corresponding installer_test action]( | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | - `extra_nix_config`: append to `/etc/nix/nix.conf` |  |  |  | - `extra_nix_config`: append to `/etc/nix/nix.conf` | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | - `github_access_token`: configure nix to pull from github using the given github token. This helps work around rate limit issues. |  |  |  | - `github_access_token`: configure Nix to pull from GitHub using the given GitHub token. This helps work around rate limit issues. Has no effect when `access-tokens` is also specified in `extra_nix_config`. | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | - `install_url`: specify URL to install Nix from (useful for testing non-stable releases or pinning Nix for example https://releases.nixos.org/nix/nix-2.3.7/install) |  |  |  | - `install_url`: specify URL to install Nix from (useful for testing non-stable releases or pinning Nix, for example https://releases.nixos.org/nix/nix-2.3.7/install) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | - `install_options`: Additional installer flags passed to the installer script. |  |  |  | - `install_options`: additional installer flags passed to the installer script. | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | - `nix_path`: set `NIX_PATH` environment variable, for example `nixpkgs=channel:nixos-unstable` |  |  |  | - `nix_path`: set `NIX_PATH` environment variable, for example `nixpkgs=channel:nixos-unstable` | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -80,7 +79,6 @@ To install Nix from any commit, go to [the corresponding installer_test action]( | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | ### How do I print nixpkgs version I have configured? |  |  |  | ### How do I print nixpkgs version I have configured? | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | ```yaml |  |  |  | ```yaml | 
			
		
	
		
		
			
				
					
					|  |  |  | - name: Print nixpkgs version |  |  |  | - name: Print nixpkgs version | 
			
		
	
		
		
			
				
					
					|  |  |  |   run: nix-instantiate --eval -E '(import <nixpkgs> {}).lib.version' |  |  |  |   run: nix-instantiate --eval -E '(import <nixpkgs> {}).lib.version' | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -122,26 +120,9 @@ Otherwise, you can add any binary cache to nix.conf using | 
			
		
	
		
		
			
				
					
					|  |  |  | install-nix-action's own `extra_nix_config` input: |  |  |  | install-nix-action's own `extra_nix_config` input: | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | ```yaml |  |  |  | ```yaml | 
			
		
	
		
		
			
				
					
					|  |  |  | - uses: cachix/install-nix-action@v18 |  |  |  | - uses: cachix/install-nix-action@v19 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   with: |  |  |  |   with: | 
			
		
	
		
		
			
				
					
					|  |  |  |     extra_nix_config: | |  |  |  |     extra_nix_config: | | 
			
		
	
		
		
			
				
					
					|  |  |  |       trusted-public-keys = hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= |  |  |  |       trusted-public-keys = hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= | 
			
		
	
		
		
			
				
					
					|  |  |  |       substituters = https://hydra.iohk.io https://cache.nixos.org/ |  |  |  |       substituters = https://hydra.iohk.io https://cache.nixos.org/ | 
			
		
	
		
		
			
				
					
					|  |  |  | ``` |  |  |  | ``` | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | ## Hacking |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | Install the dependencies |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | ```bash |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | $ yarn install |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | ``` |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | Build the typescript |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | ```bash |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | $ yarn build |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | ``` |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | Run the tests :heavy_check_mark: |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | ```bash |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | $ yarn test |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | ``` |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					| 
						
						
						
						 |  |   |