Compare commits
	
		
			26 Commits
		
	
	
		
			releases/v
			...
			installer_
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 2e56a105a6 | ||
|  | 3349b09732 | ||
|  | b516682d84 | ||
|  | 2e278dead1 | ||
|  | e6685eaf1d | ||
|  | 0383d0d550 | ||
|  | 96aea9869b | ||
|  | f43909d7a0 | ||
|  | 54ce86db4c | ||
|  | fa64b9ec04 | ||
|  | ef4324316b | ||
|  | 68043fd3c3 | ||
|  | 575d5faa90 | ||
|  | 07da2520ee | ||
|  | 661bbdf5ce | ||
|  | 334bb6100b | ||
|  | d5ba40b697 | ||
|  | fda16d28d8 | ||
|  | da678383b2 | ||
|  | 8a37740405 | ||
|  | 28b1d88f39 | ||
|  | 2767b618db | ||
|  | aee3ec7ef5 | ||
|  | ba5c343622 | ||
|  | 8389c1826a | ||
|  | 95a8068e31 | 
							
								
								
									
										22
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							| @@ -2,6 +2,8 @@ name: "install-nix-action test" | ||||
| on: | ||||
|   pull_request: | ||||
|   push: | ||||
|     branches: | ||||
|       - master | ||||
|  | ||||
| jobs: | ||||
|   simple-build: | ||||
| @@ -56,3 +58,23 @@ jobs: | ||||
|           sandbox = relaxed | ||||
|     - run: cat /etc/nix/nix.conf | ||||
|     - run: nix-build test.nix --arg noChroot true | ||||
|  | ||||
|   flakes: | ||||
|     strategy: | ||||
|       matrix: | ||||
|         os: [ubuntu-latest, macos-latest] | ||||
|     runs-on: ${{ matrix.os }} | ||||
|     steps: | ||||
|     - uses: actions/checkout@v2 | ||||
|       with: | ||||
|         # Nix Flakes doesn't work on shallow clones | ||||
|         fetch-depth: 0 | ||||
|     - run: yarn install --frozen-lockfile | ||||
|     - run: yarn build | ||||
|     - name: Install Nix | ||||
|       uses: ./ | ||||
|       with: | ||||
|         install_url: https://github.com/numtide/nix-flakes-installer/releases/download/nix-2.4pre20201221_9fab14a/install | ||||
|         extra_nix_config: | | ||||
|           experimental-features = nix-command flakes | ||||
|     - run: nix flake show github:NixOS/nixpkgs | ||||
|   | ||||
							
								
								
									
										39
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								README.md
									
									
									
									
									
								
							| @@ -6,7 +6,8 @@ Installs [Nix](https://nixos.org/nix/) on GitHub Actions for the supported platf | ||||
|  | ||||
| By default it has no nixpkgs configured, you have to set `nix_path` | ||||
| by [picking a channel](https://status.nixos.org/) | ||||
| or [pin nixpkgs yourself](https://nix.dev/tutorials/towards-reproducibility-pinning-nixpkgs.html). | ||||
| or [pin nixpkgs yourself](https://nix.dev/reference/pinning-nixpkgs.html)  | ||||
| (see also [pinning tutorial](https://nix.dev/tutorials/towards-reproducibility-pinning-nixpkgs.html)). | ||||
|  | ||||
| # Features | ||||
|  | ||||
| @@ -16,6 +17,7 @@ or [pin nixpkgs yourself](https://nix.dev/tutorials/towards-reproducibility-pinn | ||||
| - Allows specifying Nix installation URL via `install_url` | ||||
| - Allows specifying extra Nix configration 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 | ||||
|  | ||||
| ## Usage | ||||
|  | ||||
| @@ -30,20 +32,17 @@ jobs: | ||||
|   tests: | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|     - uses: actions/checkout@v2 | ||||
|     - uses: cachix/install-nix-action@v10 | ||||
|     - uses: actions/checkout@v2.3.4 | ||||
|     - uses: cachix/install-nix-action@v12 | ||||
|       with: | ||||
|         nix_path: nixpkgs=channel:nixos-unstable | ||||
|     - run: nix-build | ||||
| ``` | ||||
|  | ||||
| See also [cachix-action](https://github.com/cachix/cachix-action) for | ||||
| simple binary cache setup to speed up your builds and share binaries | ||||
| with developers. | ||||
|  | ||||
| ## Usage with Flakes | ||||
|  | ||||
| ``` | ||||
| ```yaml | ||||
| name: "Test" | ||||
| on: | ||||
|   pull_request: | ||||
| @@ -56,9 +55,9 @@ jobs: | ||||
|       with: | ||||
|           # Nix Flakes doesn't work on shallow clones | ||||
|           fetch-depth: 0 | ||||
|     - uses: cachix/install-nix-action@v11 | ||||
|     - uses: cachix/install-nix-action@v12 | ||||
|       with: | ||||
|         install_url: https://github.com/numtide/nix-flakes-installer/releases/download/nix-3.0pre20200820_4d77513/install | ||||
|         install_url: https://github.com/numtide/nix-flakes-installer/releases/download/nix-2.4pre20201221_9fab14a/install | ||||
|         extra_nix_config: | | ||||
|           experimental-features = nix-command flakes | ||||
|     - run: nix-build | ||||
| @@ -66,7 +65,7 @@ jobs: | ||||
|  | ||||
| ## Inputs (specify using `with:`) | ||||
|  | ||||
| - `install_url`: specify URL to install Nix from (useful for testing non-stable releases) | ||||
| - `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) | ||||
|  | ||||
| - `nix_path`: set `NIX_PATH` environment variable, for example `nixpkgs=channel:nixos-unstable` | ||||
|  | ||||
| @@ -80,11 +79,29 @@ jobs: | ||||
|  | ||||
| [Currently GitHub Actions are not running on Azure instance types that support nested virtualization](https://github.com/actions/virtual-environments/issues/183#issuecomment-610723516). | ||||
|  | ||||
| ### How do I print nixpkgs version with the channel I have configured? | ||||
| ### How do I print nixpkgs version I have configured? | ||||
|  | ||||
|  | ||||
| ```nix-instantiate --eval -E '(import <nixpkgs> {}).lib.version'``` | ||||
|  | ||||
| ### How can I run NixOS tests? | ||||
|  | ||||
| With the following inputs: | ||||
|  | ||||
| ```yaml | ||||
|     - uses: cachix/install-nix-action@vXX | ||||
|       with: | ||||
|         extra_nix_config: "system-features = nixos-test benchmark big-parallel kvm" | ||||
| ``` | ||||
|  | ||||
| Note that there's no hardware acceleration on GitHub Actions. | ||||
|  | ||||
| ### How can I install packages via nix-env from the specified `nix_path`? | ||||
|  | ||||
| ``` | ||||
| nix-env -i mypackage -f '<nixpkgs>' | ||||
| ``` | ||||
|  | ||||
| ## Hacking | ||||
|  | ||||
| Install the dependencies | ||||
|   | ||||
| @@ -3,7 +3,9 @@ description: 'Installs Nix on GitHub Actions for the supported platforms: Linux | ||||
| author: 'Domen Kožar' | ||||
| inputs: | ||||
|   install_url: | ||||
|     description: 'Installation URL that will contain a script to install Nix' | ||||
|     description: 'Installation URL that will contain a script to install Nix.' | ||||
|   install_options: | ||||
|     description: 'Additional installer flags passed to the installer script.' | ||||
|   nix_path: | ||||
|     description: 'Set NIX_PATH environment variable.' | ||||
|   extra_nix_config: | ||||
|   | ||||
| @@ -1,6 +1,11 @@ | ||||
| #!/usr/bin/env bash | ||||
| set -euo pipefail | ||||
|  | ||||
| if type -p nix &>/dev/null ; then | ||||
|   echo "Aborting: Nix is already installed at $(type -p nix)" | ||||
|   exit | ||||
| fi | ||||
|  | ||||
| # Configure Nix | ||||
| add_config() { | ||||
|   echo "$1" | sudo tee -a /tmp/nix.conf >/dev/null | ||||
| @@ -22,7 +27,11 @@ installer_options=( | ||||
|   --darwin-use-unencrypted-nix-store-volume | ||||
|   --nix-extra-conf-file /tmp/nix.conf | ||||
| ) | ||||
| if [[ $INPUT_INSTALL_OPTIONS != "" ]]; then | ||||
|   installer_options=("${installer_options[@]}" "${INPUT_INSTALL_OPTIONS[@]}") | ||||
| fi | ||||
|  | ||||
| echo "installer options: ${installer_options[@]}" | ||||
| # On self-hosted runners we don't need to install more than once | ||||
| if [[ ! -d /nix/store ]]  | ||||
| then  | ||||
| @@ -35,15 +44,15 @@ if [[ $OSTYPE =~ darwin ]]; then | ||||
|  | ||||
|   # macOS needs certificates hints | ||||
|   cert_file=/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt | ||||
|   echo "::set-env name=NIX_SSL_CERT_FILE::$cert_file" | ||||
|   echo "NIX_SSL_CERT_FILE=$cert_file" >> "$GITHUB_ENV" | ||||
|   export NIX_SSL_CERT_FILE=$cert_file | ||||
|   sudo launchctl setenv NIX_SSL_CERT_FILE "$cert_file" | ||||
| fi | ||||
|  | ||||
| # Set paths | ||||
| echo "::add-path::/nix/var/nix/profiles/per-user/$USER/profile/bin" | ||||
| echo "::add-path::/nix/var/nix/profiles/default/bin" | ||||
| echo "/nix/var/nix/profiles/per-user/$USER/profile/bin" >> "$GITHUB_PATH" | ||||
| echo "/nix/var/nix/profiles/default/bin" >> "$GITHUB_PATH" | ||||
|  | ||||
| if [[ $INPUT_NIX_PATH != "" ]]; then | ||||
|   echo "::set-env name=NIX_PATH::${INPUT_NIX_PATH}" | ||||
|   echo "NIX_PATH=${INPUT_NIX_PATH}" >> "$GITHUB_ENV" | ||||
| fi | ||||
|   | ||||
| @@ -20,7 +20,7 @@ | ||||
|   "author": "Domen Kožar", | ||||
|   "license": "ASL2", | ||||
|   "dependencies": { | ||||
|     "@actions/core": "^1.1.0", | ||||
|     "@actions/core": "^1.2.6", | ||||
|     "@actions/exec": "^1.0.1", | ||||
|     "@actions/tool-cache": "^1.1.2" | ||||
|   }, | ||||
|   | ||||
							
								
								
									
										14
									
								
								yarn.lock
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								yarn.lock
									
									
									
									
									
								
							| @@ -2,10 +2,10 @@ | ||||
| # yarn lockfile v1 | ||||
|  | ||||
|  | ||||
| "@actions/core@^1.1.0": | ||||
|   version "1.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.1.1.tgz#e08f3dbfe04721bb3d040f8fca2d6d7e1817b2e1" | ||||
|   integrity sha512-O5G6EmlzTVsng7VSpNtszIoQq6kOgMGNTFB/hmwKNNA4V71JyxImCIrL27vVHCt2Cb3ImkaCr6o27C2MV9Ylwg== | ||||
| "@actions/core@^1.1.0", "@actions/core@^1.2.6": | ||||
|   version "1.2.6" | ||||
|   resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.2.6.tgz#a78d49f41a4def18e88ce47c2cac615d5694bf09" | ||||
|   integrity sha512-ZQYitnqiyBc3D+k7LsgSBmMDVkOVidaagDG7j3fOym77jNunWRuYx7VSHa9GNfFZh+zh61xsCjRj4JxMZlDqTA== | ||||
|  | ||||
| "@actions/exec@^1.0.1": | ||||
|   version "1.0.1" | ||||
| @@ -1452,9 +1452,9 @@ inherits@2, inherits@~2.0.3: | ||||
|   integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== | ||||
|  | ||||
| ini@~1.3.0: | ||||
|   version "1.3.5" | ||||
|   resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" | ||||
|   integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== | ||||
|   version "1.3.8" | ||||
|   resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" | ||||
|   integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== | ||||
|  | ||||
| invariant@^2.2.4: | ||||
|   version "2.2.4" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user