Compare commits
	
		
			80 Commits
		
	
	
		
			nix-2.3.5
			...
			flakes-git
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 542462de24 | ||
|  | 8725a6ad42 | ||
|  | 018abf956a | ||
|  | 76107d4eb5 | ||
|  | 5d66827b21 | ||
|  | dad6e949b6 | ||
|  | b88b67ae9d | ||
|  | d4ff692ea4 | ||
|  | 2a00823cdf | ||
|  | c337086021 | ||
|  | 73a329e1fc | ||
|  | 139e95e483 | ||
|  | 15ad7f8d90 | ||
|  | 3e5f4ecda4 | ||
|  | 46e3bcf1bc | ||
|  | 28b5f5643a | ||
|  | 87d70237f9 | ||
|  | e0cb57136a | ||
|  | 690eac722d | ||
|  | 8d6d5e9496 | ||
|  | 20dc92e361 | ||
|  | c5dad0de4e | ||
|  | 36ed3fe72b | ||
|  | 0b249633ac | ||
|  | 0bd2cdca25 | ||
|  | 20d5bae58c | ||
|  | 0598b739d8 | ||
|  | 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 | ||
|  | 9e0a5291c3 | ||
|  | b093d8fdd9 | ||
|  | 6b9133ebb9 | ||
|  | 05229ec560 | ||
|  | 97465807a1 | ||
|  | cf5982c65c | ||
|  | 4977bdad66 | ||
|  | 775aed5fcb | ||
|  | 5a2cbacfff | ||
|  | 4bdb5ea92c | ||
|  | 9dc00124fc | ||
|  | 967d234ad8 | ||
|  | 07dda1e608 | ||
|  | 434ba1c7f0 | ||
|  | d953a4ee09 | ||
|  | dad23f2092 | ||
|  | 3559d01d05 | ||
|  | 62a0c05281 | ||
|  | 9000f28930 | ||
|  | 80dbe69d87 | ||
|  | 1664fea144 | ||
|  | 41dfa36aa3 | ||
|  | 63cf434de4 | ||
|  | 2ebff14e68 | ||
|  | a744770f4b | ||
|  | 14f0e86ffb | ||
|  | 4cbb444a96 | 
							
								
								
									
										13
									
								
								.github/dependabot.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								.github/dependabot.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| version: 2 | ||||
| updates: | ||||
|  | ||||
| - package-ecosystem: github-actions | ||||
|   directory: "/" | ||||
|   schedule: | ||||
|     interval: daily | ||||
|     time: '00:00' | ||||
|     timezone: UTC | ||||
|   open-pull-requests-limit: 10 | ||||
|   commit-message: | ||||
|       prefix: "chore" | ||||
|       include: "scope" | ||||
							
								
								
									
										70
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										70
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							| @@ -2,6 +2,9 @@ name: "install-nix-action test" | ||||
| on: | ||||
|   pull_request: | ||||
|   push: | ||||
|     branches: | ||||
|       - master | ||||
|  | ||||
| jobs: | ||||
|   simple-build: | ||||
|     strategy: | ||||
| @@ -9,17 +12,73 @@ jobs: | ||||
|         os: [ubuntu-latest, macos-latest] | ||||
|     runs-on: ${{ matrix.os }} | ||||
|     steps: | ||||
|     - uses: actions/checkout@v2 | ||||
|     - uses: actions/checkout@v2.3.4 | ||||
|     - run: yarn install --frozen-lockfile | ||||
|     - run: yarn build | ||||
|     - name: Install Nix | ||||
|       uses: ./ | ||||
|       with: | ||||
|         nix_path: nixpkgs=channel:nixos-20.03 | ||||
|     - run: nix-env -iA cachix -f https://cachix.org/api/v1/install | ||||
|     - run: cat /etc/nix/nix.conf | ||||
|     # cachix should be available and be able to configure a cache | ||||
|     - run: cachix use cachix | ||||
|     - run: nix-build test.nix | ||||
|   no-channel: | ||||
|  | ||||
|   custom-nix-path: | ||||
|     strategy: | ||||
|       matrix: | ||||
|         os: [ubuntu-latest, macos-latest] | ||||
|     runs-on: ${{ matrix.os }} | ||||
|     steps: | ||||
|     - uses: actions/checkout@v2.3.4 | ||||
|     - run: yarn install --frozen-lockfile | ||||
|     - run: yarn build | ||||
|     - name: Install Nix | ||||
|       uses: ./ | ||||
|       with: | ||||
|         nix_path: nixpkgs=channel:nixos-20.03 | ||||
|     - run: test $NIX_PATH == "nixpkgs=channel:nixos-20.03" | ||||
|     - run: nix-build test.nix | ||||
|  | ||||
|   extra-nix-config: | ||||
|     strategy: | ||||
|       matrix: | ||||
|         os: [ubuntu-latest, macos-latest] | ||||
|     runs-on: ${{ matrix.os }} | ||||
|     steps: | ||||
|     - uses: actions/checkout@v2.3.4 | ||||
|     - run: yarn install --frozen-lockfile | ||||
|     - run: yarn build | ||||
|     - name: Install Nix | ||||
|       uses: ./ | ||||
|       with:  | ||||
|         nix_path: nixpkgs=channel:nixos-20.03 | ||||
|         extra_nix_config: | | ||||
|           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.3.4 | ||||
|     - run: yarn install --frozen-lockfile | ||||
|     - run: yarn build | ||||
|     - name: Install Nix | ||||
|       uses: ./ | ||||
|       with: | ||||
|         install_url: https://nixos-nix-install-tests.cachix.org/serve/i6laym9jw3wg9mw6ncyrk6gjx4l34vvx/install | ||||
|         install_options: '--tarball-url-prefix https://nixos-nix-install-tests.cachix.org/serve' | ||||
|         extra_nix_config: | | ||||
|           experimental-features = nix-command flakes | ||||
|           access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} | ||||
|     - run: nix flake show github:NixOS/nixpkgs | ||||
|  | ||||
|   installer-options: | ||||
|     strategy: | ||||
|       matrix: | ||||
|         os: [ubuntu-latest, macos-latest] | ||||
| @@ -31,6 +90,7 @@ jobs: | ||||
|     - name: Install Nix | ||||
|       uses: ./ | ||||
|       with:  | ||||
|         skip_adding_nixpkgs_channel: true | ||||
|     - run: nix-build test.nix && exit 1 || echo "OK" | ||||
|     - run: NIX_PATH=nixpkgs=https://github.com/NixOS/nixpkgs/tarball/ab5863afada3c1b50fc43bf774b75ea71b287cde nix-build test.nix | ||||
|         nix_path: nixpkgs=channel:nixos-21.05 | ||||
|         install_url: https://nixos-nix-install-tests.cachix.org/serve/i6laym9jw3wg9mw6ncyrk6gjx4l34vvx/install | ||||
|         install_options: '--tarball-url-prefix https://nixos-nix-install-tests.cachix.org/serve' | ||||
|     - run: nix-build test.nix | ||||
|   | ||||
							
								
								
									
										109
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										109
									
								
								README.md
									
									
									
									
									
								
							| @@ -4,6 +4,21 @@ | ||||
|  | ||||
| Installs [Nix](https://nixos.org/nix/) on GitHub Actions for the supported platforms: Linux and macOS. | ||||
|  | ||||
| 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/reference/pinning-nixpkgs.html)  | ||||
| (see also [pinning tutorial](https://nix.dev/tutorials/towards-reproducibility-pinning-nixpkgs.html)). | ||||
|  | ||||
| # Features | ||||
|  | ||||
| - Quick installation (~4s on Linux, ~20s on macOS) | ||||
| - 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 | ||||
| - 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 | ||||
|  | ||||
| Create `.github/workflows/test.yml` in your repo with the following contents: | ||||
| @@ -17,20 +32,102 @@ jobs: | ||||
|   tests: | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|     - uses: actions/checkout@v2 | ||||
|     - uses: cachix/install-nix-action@v8 | ||||
|     - uses: actions/checkout@v2.3.4 | ||||
|     - uses: cachix/install-nix-action@v13 | ||||
|       with: | ||||
|         nix_path: nixpkgs=channel:nixos-unstable | ||||
|     - run: nix-build | ||||
| ``` | ||||
|  | ||||
|  | ||||
| See [action.yml](action.yml) for all options. | ||||
| ## Usage with Flakes | ||||
|  | ||||
| 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. | ||||
| ```yaml | ||||
| name: "Test" | ||||
| on: | ||||
|   pull_request: | ||||
|   push: | ||||
| jobs: | ||||
|   tests: | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|     - uses: actions/checkout@v2.3.4 | ||||
|     - uses: cachix/install-nix-action@v13 | ||||
|       with: | ||||
|         install_url: https://nixos-nix-install-tests.cachix.org/serve/i6laym9jw3wg9mw6ncyrk6gjx4l34vvx/install | ||||
|         install_options: '--tarball-url-prefix https://nixos-nix-install-tests.cachix.org/serve' | ||||
|         extra_nix_config: | | ||||
|           experimental-features = nix-command flakes | ||||
|           access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} | ||||
|     - run: nix build | ||||
|     - run: nix flake check | ||||
| ``` | ||||
|  | ||||
| To install Nix from any commit, go to [the corresponding installer_test action](https://github.com/NixOS/nix/runs/2219534360) and click on "Run cachix/install-nix-action@XX" step and expand the first line. | ||||
|  | ||||
| ## Inputs (specify using `with:`) | ||||
|  | ||||
| - `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` | ||||
|  | ||||
| - `extra_nix_config`: append to `/etc/nix/nix.conf` | ||||
|  | ||||
| --- | ||||
|  | ||||
| ## FAQ | ||||
|  | ||||
| ### How do I print nixpkgs version I have configured? | ||||
|  | ||||
|  | ||||
| ```yaml | ||||
| - name: Print nixpkgs version | ||||
|   run: 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.](https://github.com/actions/virtual-environments/issues/183#issuecomment-610723516). | ||||
|  | ||||
| ### How can I install packages via nix-env from the specified `nix_path`? | ||||
|  | ||||
| ``` | ||||
| nix-env -i mypackage -f '<nixpkgs>' | ||||
| ``` | ||||
|  | ||||
| ### How do I add a binary cache? | ||||
|  | ||||
| If the binary cache you want to add is hosted on [Cachix](https://cachix.org/) and you are | ||||
| using [cachix-action](https://github.com/cachix/cachix-action), you | ||||
| should use their `extraPullNames` input like this: | ||||
|  | ||||
| ```yaml | ||||
| - uses: cachix/cachix-action@vXX | ||||
|    with: | ||||
|      name: mycache | ||||
|      authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' | ||||
|      extraPullNames: nix-community | ||||
| ``` | ||||
|  | ||||
| Otherwise, you can add any binary cache to nix.conf using | ||||
| install-nix-action's own `extra_nix_config` input: | ||||
|  | ||||
| ```yaml | ||||
| - uses: cachix/install-nix-action@vXX | ||||
|   with: | ||||
|     extra_nix_config: | | ||||
|       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/ | ||||
| ``` | ||||
|  | ||||
| ## Hacking | ||||
|  | ||||
| Install the dependencies | ||||
|   | ||||
							
								
								
									
										10
									
								
								action.yml
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								action.yml
									
									
									
									
									
								
							| @@ -3,9 +3,13 @@ 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' | ||||
|   skip_adding_nixpkgs_channel: | ||||
|     description: 'Skip adding nixpkgs-unstable channel' | ||||
|     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: | ||||
|     description: 'gets appended to `/etc/nix/nix.conf` if passed.' | ||||
| branding: | ||||
|   color: 'blue' | ||||
|   icon: 'sun' | ||||
|   | ||||
| @@ -1,102 +0,0 @@ | ||||
| #!/usr/bin/env bash | ||||
| set -e | ||||
|  | ||||
| root_disks() { | ||||
|     diskutil list -plist / | ||||
| } | ||||
|  | ||||
| apfs_volumes_for() { | ||||
|     disk=$1 | ||||
|     diskutil apfs list -plist "$disk" | ||||
| } | ||||
|  | ||||
| disk_identifier() { | ||||
|     xpath "/plist/dict/key[text()='WholeDisks']/following-sibling::array[1]/string/text()" 2>/dev/null | ||||
| } | ||||
|  | ||||
| volume_get() { | ||||
|     key=$1 i=$2 | ||||
|     xpath "/plist/dict/array/dict/key[text()='Volumes']/following-sibling::array/dict[$i]/key[text()='$key']/following-sibling::string[1]/text()" 2> /dev/null | ||||
| } | ||||
|  | ||||
| find_nix_volume() { | ||||
|     disk=$1 | ||||
|     i=1 | ||||
|     volumes=$(apfs_volumes_for "$disk") | ||||
|     while true; do | ||||
|         name=$(echo "$volumes" | volume_get "Name" "$i") | ||||
|         if [ -z "$name" ]; then | ||||
|             break | ||||
|         fi | ||||
|         case "$name" in | ||||
|             [Nn]ix*) | ||||
|                 echo "$name" | ||||
|                 break | ||||
|                 ;; | ||||
|         esac | ||||
|         i=$((i+1)) | ||||
|     done | ||||
| } | ||||
|  | ||||
| test_fstab() { | ||||
|     grep -q "/nix" /etc/fstab 2>/dev/null | ||||
| } | ||||
|  | ||||
| test_synthetic_conf() { | ||||
|     grep -q "^nix" /etc/synthetic.conf 2>/dev/null | ||||
| } | ||||
|  | ||||
| test_nix() { | ||||
|     test -d "/nix" | ||||
| } | ||||
|  | ||||
| main() { | ||||
|     ( | ||||
|         echo "" | ||||
|         echo "     ------------------------------------------------------------------ " | ||||
|         echo "    | This installer will create a volume for the nix store and        |" | ||||
|         echo "    | configure it to mount at /nix.  Follow these steps to uninstall. |" | ||||
|         echo "     ------------------------------------------------------------------ " | ||||
|         echo "" | ||||
|         echo "  1. Remove the entry from fstab using 'sudo vifs'" | ||||
|         echo "  2. Destroy the data volume using 'diskutil apfs deleteVolume'" | ||||
|         echo "  3. Delete /etc/synthetic.conf" | ||||
|         echo "" | ||||
|     ) >&2 | ||||
|  | ||||
|     if [ -L "/nix" ]; then | ||||
|         echo "error: /nix is a symlink, please remove it or edit synthetic.conf (requires reboot)" >&2 | ||||
|         echo "  /nix -> $(readlink "/nix")" >&2 | ||||
|         exit 2 | ||||
|     fi | ||||
|  | ||||
|     if ! test_synthetic_conf; then | ||||
|         echo "Configuring /etc/synthetic.conf..." >&2 | ||||
|         echo nix | sudo tee /etc/synthetic.conf | ||||
|         /System/Library/Filesystems/apfs.fs/Contents/Resources/apfs.util -B | ||||
|     fi | ||||
|  | ||||
|     if ! test_nix; then | ||||
|         echo "Creating mountpoint for /nix..." >&2 | ||||
|         sudo mkdir /nix | ||||
|     fi | ||||
|  | ||||
|     disk=$(root_disks | disk_identifier) | ||||
|     volume=$(find_nix_volume "$disk") | ||||
|     if [ -z "$volume" ]; then | ||||
|         echo "Creating a Nix Store volume..." >&2 | ||||
|         sudo diskutil apfs addVolume "$disk" APFS 'Nix Store' -mountpoint /nix | ||||
|         volume="Nix Store" | ||||
|     else | ||||
|         echo "Using existing '$volume' volume" >&2 | ||||
|     fi | ||||
|  | ||||
|     if ! test_fstab; then | ||||
|         echo "Configuring /etc/fstab..." >&2 | ||||
|         label=$(echo "$volume" | sed 's/ /\\040/g') | ||||
|         printf "\$a\nLABEL=%s /nix apfs rw\n.\nwq\n" "$label" | EDITOR=ed sudo vifs | ||||
|         sudo defaults write /Library/Preferences/SystemConfiguration/autodiskmount AutomountDisksWithoutUserLogin -bool true | ||||
|     fi | ||||
| } | ||||
|  | ||||
| main "$@" | ||||
| @@ -1,19 +1,43 @@ | ||||
| #!/usr/bin/env bash | ||||
| set -euo pipefail | ||||
|  | ||||
| # Set jobs to number of cores | ||||
| sudo sh -c 'echo max-jobs = auto >> /tmp/nix.conf' | ||||
| # Allow binary caches for runner user | ||||
| sudo sh -c 'echo trusted-users = root runner >> /tmp/nix.conf' | ||||
|  | ||||
| if [[ $INPUT_SKIP_ADDING_NIXPKGS_CHANNEL = "true" ]]; then | ||||
|   extra_cmd=--no-channel-add | ||||
| else | ||||
|   extra_cmd= | ||||
| if type -p nix &>/dev/null ; then | ||||
|   echo "Aborting: Nix is already installed at $(type -p nix)" | ||||
|   exit | ||||
| fi | ||||
|  | ||||
| sh <(curl -L ${INPUT_INSTALL_URL:-https://nixos.org/nix/install}) \ | ||||
|   --daemon --daemon-user-count 4 --nix-extra-conf-file /tmp/nix.conf --darwin-use-unencrypted-nix-store-volume $extra_cmd | ||||
| # Configure Nix | ||||
| add_config() { | ||||
|   echo "$1" | tee -a /tmp/nix.conf >/dev/null | ||||
| } | ||||
| # Set jobs to number of cores | ||||
| add_config "max-jobs = auto" | ||||
| # Allow binary caches for user | ||||
| add_config "trusted-users = root $USER" | ||||
| # Append extra nix configuration if provided | ||||
| if [[ $INPUT_EXTRA_NIX_CONFIG != "" ]]; then | ||||
|   add_config "$INPUT_EXTRA_NIX_CONFIG" | ||||
| fi | ||||
|  | ||||
| # Nix installer flags | ||||
| installer_options=( | ||||
|   --daemon | ||||
|   --daemon-user-count 4 | ||||
|   --no-channel-add | ||||
|   --darwin-use-unencrypted-nix-store-volume | ||||
|   --nix-extra-conf-file /tmp/nix.conf | ||||
| ) | ||||
| if [[ $INPUT_INSTALL_OPTIONS != "" ]]; then | ||||
|   IFS=' ' read -r -a extra_installer_options <<< $INPUT_INSTALL_OPTIONS | ||||
|   installer_options=("${extra_installer_options[@]}" "${installer_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  | ||||
|   sh <(curl --retry 5 --retry-connrefused -L "${INPUT_INSTALL_URL:-https://nixos.org/nix/install}") "${installer_options[@]}" | ||||
| fi | ||||
|  | ||||
| if [[ $OSTYPE =~ darwin ]]; then | ||||
|   # Disable spotlight indexing of /nix to speed up performance | ||||
| @@ -21,14 +45,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/runner/profile/bin" | ||||
| echo "::add-path::/nix/var/nix/profiles/default/bin" | ||||
| if [[ $INPUT_SKIP_ADDING_NIXPKGS_CHANNEL != "true" ]]; then | ||||
| echo "::set-env name=NIX_PATH::/nix/var/nix/profiles/per-user/root/channels" | ||||
| 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 "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" | ||||
|   }, | ||||
|   | ||||
							
								
								
									
										5
									
								
								test.nix
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								test.nix
									
									
									
									
									
								
							| @@ -2,12 +2,15 @@ | ||||
| { size ? 1 # MB | ||||
| , num ? 10 # count  | ||||
| , currentTime ? builtins.currentTime | ||||
| , noChroot ? false | ||||
| }: | ||||
|  | ||||
| with import <nixpkgs> {}; | ||||
|  | ||||
| let | ||||
|   drv = i: runCommand "${toString currentTime}-${toString i}" {} '' | ||||
|   drv = i: runCommand "${toString currentTime}-${toString i}" { | ||||
|     __noChroot = noChroot; | ||||
|   } '' | ||||
|     dd if=/dev/zero of=$out bs=${toString size}MB count=1 | ||||
|   ''; | ||||
| in writeText "empty-${toString num}-${toString size}MB" '' | ||||
|   | ||||
							
								
								
									
										89
									
								
								yarn.lock
									
									
									
									
									
								
							
							
						
						
									
										89
									
								
								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" | ||||
| @@ -803,11 +803,6 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: | ||||
|   dependencies: | ||||
|     delayed-stream "~1.0.0" | ||||
|  | ||||
| commander@~2.20.0: | ||||
|   version "2.20.1" | ||||
|   resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.1.tgz#3863ce3ca92d0831dcf2a102f5fb4b5926afd0f9" | ||||
|   integrity sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg== | ||||
|  | ||||
| component-emitter@^1.2.1: | ||||
|   version "1.3.0" | ||||
|   resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" | ||||
| @@ -1318,13 +1313,14 @@ growly@^1.3.0: | ||||
|   integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= | ||||
|  | ||||
| handlebars@^4.1.2: | ||||
|   version "4.4.0" | ||||
|   resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.4.0.tgz#22e1a897c5d83023d39801f35f6b65cf97ed8b25" | ||||
|   integrity sha512-xkRtOt3/3DzTKMOt3xahj2M/EqNhY988T+imYSlMgs5fVhLN2fmKVVj0LtEGmb+3UUYV5Qmm1052Mm3dIQxOvw== | ||||
|   version "4.7.7" | ||||
|   resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" | ||||
|   integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== | ||||
|   dependencies: | ||||
|     minimist "^1.2.5" | ||||
|     neo-async "^2.6.0" | ||||
|     optimist "^0.6.1" | ||||
|     source-map "^0.6.1" | ||||
|     wordwrap "^1.0.0" | ||||
|   optionalDependencies: | ||||
|     uglify-js "^3.1.4" | ||||
|  | ||||
| @@ -1395,9 +1391,9 @@ has@^1.0.1, has@^1.0.3: | ||||
|     function-bind "^1.1.1" | ||||
|  | ||||
| hosted-git-info@^2.1.4: | ||||
|   version "2.8.4" | ||||
|   resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.4.tgz#44119abaf4bc64692a16ace34700fed9c03e2546" | ||||
|   integrity sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ== | ||||
|   version "2.8.9" | ||||
|   resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" | ||||
|   integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== | ||||
|  | ||||
| html-encoding-sniffer@^1.0.2: | ||||
|   version "1.0.2" | ||||
| @@ -1456,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" | ||||
| @@ -2225,9 +2221,9 @@ lodash.sortby@^4.7.0: | ||||
|   integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= | ||||
|  | ||||
| lodash@^4.17.11, lodash@^4.17.13: | ||||
|   version "4.17.15" | ||||
|   resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" | ||||
|   integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== | ||||
|   version "4.17.21" | ||||
|   resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" | ||||
|   integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== | ||||
|  | ||||
| loose-envify@^1.0.0: | ||||
|   version "1.4.0" | ||||
| @@ -2316,15 +2312,10 @@ minimist@0.0.8: | ||||
|   resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" | ||||
|   integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= | ||||
|  | ||||
| minimist@^1.1.1, minimist@^1.2.0: | ||||
|   version "1.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" | ||||
|   integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= | ||||
|  | ||||
| minimist@~0.0.1: | ||||
|   version "0.0.10" | ||||
|   resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" | ||||
|   integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= | ||||
| minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: | ||||
|   version "1.2.5" | ||||
|   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" | ||||
|   integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== | ||||
|  | ||||
| minipass@^2.6.0, minipass@^2.8.6: | ||||
|   version "2.8.6" | ||||
| @@ -2411,9 +2402,9 @@ needle@^2.2.1: | ||||
|     sax "^1.2.4" | ||||
|  | ||||
| neo-async@^2.6.0: | ||||
|   version "2.6.1" | ||||
|   resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" | ||||
|   integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== | ||||
|   version "2.6.2" | ||||
|   resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" | ||||
|   integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== | ||||
|  | ||||
| nice-try@^1.0.4: | ||||
|   version "1.0.5" | ||||
| @@ -2580,14 +2571,6 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: | ||||
|   dependencies: | ||||
|     wrappy "1" | ||||
|  | ||||
| optimist@^0.6.1: | ||||
|   version "0.6.1" | ||||
|   resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" | ||||
|   integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= | ||||
|   dependencies: | ||||
|     minimist "~0.0.1" | ||||
|     wordwrap "~0.0.2" | ||||
|  | ||||
| optionator@^0.8.1: | ||||
|   version "0.8.2" | ||||
|   resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" | ||||
| @@ -3459,12 +3442,9 @@ typescript@^3.5.1: | ||||
|   integrity sha512-N7bceJL1CtRQ2RiG0AQME13ksR7DiuQh/QehubYcghzv20tnh+MQnQIuJddTmsbqYj+dztchykemz0zFzlvdQw== | ||||
|  | ||||
| uglify-js@^3.1.4: | ||||
|   version "3.6.0" | ||||
|   resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5" | ||||
|   integrity sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg== | ||||
|   dependencies: | ||||
|     commander "~2.20.0" | ||||
|     source-map "~0.6.1" | ||||
|   version "3.13.5" | ||||
|   resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.5.tgz#5d71d6dbba64cf441f32929b1efce7365bb4f113" | ||||
|   integrity sha512-xtB8yEqIkn7zmOyS2zUNBsYCBRhDkvlNxMMY2smuJ/qA8NCHeQvKCF3i9Z4k8FJH4+PJvZRtMrPynfZ75+CSZw== | ||||
|  | ||||
| underscore@1.8.3: | ||||
|   version "1.8.3" | ||||
| @@ -3609,12 +3589,7 @@ wide-align@^1.1.0: | ||||
|   dependencies: | ||||
|     string-width "^1.0.2 || 2" | ||||
|  | ||||
| wordwrap@~0.0.2: | ||||
|   version "0.0.3" | ||||
|   resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" | ||||
|   integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= | ||||
|  | ||||
| wordwrap@~1.0.0: | ||||
| wordwrap@^1.0.0, wordwrap@~1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" | ||||
|   integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= | ||||
| @@ -3655,9 +3630,9 @@ xml-name-validator@^3.0.0: | ||||
|   integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== | ||||
|  | ||||
| y18n@^4.0.0: | ||||
|   version "4.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" | ||||
|   integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== | ||||
|   version "4.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" | ||||
|   integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== | ||||
|  | ||||
| yallist@^3.0.0, yallist@^3.0.3: | ||||
|   version "3.1.0" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user