Compare commits
	
		
			127 Commits
		
	
	
		
			v6
			...
			enable-exp
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 53fb0300a7 | ||
|  | 825ca3e533 | ||
|  | fe464fe88d | ||
|  | 896dc80fef | ||
|  | 3e0e991ad2 | ||
|  | d04e8d60ba | ||
|  | 791347c66b | ||
|  | 3e073d0e89 | ||
|  | 11e5400ecc | ||
|  | 0f50057886 | ||
|  | 7a7eae594b | ||
|  | 3fd5ca6446 | ||
|  | 6e7c9a9516 | ||
|  | 7dec9775e5 | ||
|  | 2fc50b7dbd | ||
|  | 82ce26d8eb | ||
|  | 439f71762b | ||
|  | 73f48ce8fb | ||
|  | 941ffc2ad5 | ||
|  | 6a1044d4ed | ||
|  | 6f6cb173e2 | ||
|  | 17775af2a2 | ||
|  | aeb0bfb217 | ||
|  | 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 | ||
|  | f68249e909 | ||
|  | 10a7d51bce | ||
|  | 642cfa0200 | ||
|  | d3c3fef7d5 | ||
|  | 1c67340d91 | ||
|  | afb82faed7 | ||
|  | bc19d99f45 | ||
|  | 5ab66ea04b | ||
|  | 1b7507cdbf | ||
|  | 5bba53f2a2 | ||
|  | ebed63b0a2 | ||
|  | 5c21a08208 | ||
|  | 9affe1ce81 | ||
|  | ef735e86b9 | ||
|  | 4856b67e4a | ||
|  | 6e3de2b50b | ||
|  | d8ecc134bc | ||
|  | dba72516a1 | ||
|  | df989ac1d6 | ||
|  | a5f8eada85 | ||
|  | f57eb6b95e | ||
|  | 033d472283 | ||
|  | 39c9ce7c86 | ||
|  | 8b315ca141 | 
							
								
								
									
										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" | ||||
							
								
								
									
										103
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										103
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							| @@ -2,23 +2,110 @@ name: "install-nix-action test" | ||||
| on: | ||||
|   pull_request: | ||||
|   push: | ||||
|     branches: | ||||
|       - master | ||||
|  | ||||
| jobs: | ||||
|   tests: | ||||
|   simple-build: | ||||
|     strategy: | ||||
|       matrix: | ||||
|         os: [ubuntu-18.04, macos-latest] | ||||
|         os: [ubuntu-latest, macos-latest] | ||||
|     runs-on: ${{ matrix.os }} | ||||
|     steps: | ||||
|     - uses: actions/checkout@v1 | ||||
|     - uses: actions/checkout@v2.3.5 | ||||
|     - run: yarn install --frozen-lockfile | ||||
|     - run: yarn build | ||||
|     # TODO: just commit it using github | ||||
|     - run: git diff --exit-code | ||||
|     - run: yarn test | ||||
|     - name: Install Nix | ||||
|       uses: ./ | ||||
|     - run: nix-env -iA cachix -f https://github.com/NixOS/nixpkgs/tarball/ab5863afada3c1b50fc43bf774b75ea71b287cde | ||||
|       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 | ||||
|     - run: nix-build test.nix | ||||
|  | ||||
|   custom-nix-path: | ||||
|     strategy: | ||||
|       matrix: | ||||
|         os: [ubuntu-latest, macos-latest] | ||||
|     runs-on: ${{ matrix.os }} | ||||
|     steps: | ||||
|     - uses: actions/checkout@v2.3.5 | ||||
|     - 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.5 | ||||
|     - 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.5 | ||||
|     - 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: | | ||||
|           access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} | ||||
|     - run: nix flake show github:NixOS/nixpkgs | ||||
|  | ||||
|   installer-options: | ||||
|     strategy: | ||||
|       matrix: | ||||
|         os: [ubuntu-latest, macos-latest] | ||||
|     runs-on: ${{ matrix.os }} | ||||
|     steps: | ||||
|     - uses: actions/checkout@v2.3.5 | ||||
|     - run: yarn install --frozen-lockfile | ||||
|     - run: yarn build | ||||
|     - name: Install Nix | ||||
|       uses: ./ | ||||
|       with:  | ||||
|         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 | ||||
|  | ||||
|   oldest-supported-installer: | ||||
|     strategy: | ||||
|         matrix: | ||||
|           os: [ubuntu-latest, macos-latest] | ||||
|     runs-on: ${{ matrix.os }} | ||||
|     steps: | ||||
|     - uses: actions/checkout@v2.3.5 | ||||
|     - run: yarn install --frozen-lockfile | ||||
|     - run: yarn build | ||||
|     - name: Install Nix | ||||
|       uses: ./ | ||||
|       with: | ||||
|         nix_path: nixpkgs=channel:nixos-21.05 | ||||
|         install_url: https://releases.nixos.org/nix/nix-2.3.5/install | ||||
|     - run: nix-build test.nix | ||||
|   | ||||
							
								
								
									
										109
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										109
									
								
								README.md
									
									
									
									
									
								
							| @@ -4,6 +4,22 @@ | ||||
|  | ||||
| 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` (the oldest supported Nix version is 2.3.5) | ||||
| - 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 | ||||
| - Enables `flakes` and `nix-command` experimental features by default (to disable, set ``experimental-features` via `extra_nix_config`)  | ||||
|  | ||||
| ## Usage | ||||
|  | ||||
| Create `.github/workflows/test.yml` in your repo with the following contents: | ||||
| @@ -17,20 +33,101 @@ jobs: | ||||
|   tests: | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|     - uses: actions/checkout@v1 | ||||
|     - uses: cachix/install-nix-action@v3 | ||||
|     - 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@v14 | ||||
|       with: | ||||
|         install_url: https://nixos-nix-install-tests.cachix.org/serve/vij683ly7sl95nnhb67bdjjfabclr85m/install | ||||
|         install_options: '--tarball-url-prefix https://nixos-nix-install-tests.cachix.org/serve' | ||||
|         extra_nix_config: | | ||||
|           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 | ||||
|   | ||||
| @@ -1,6 +1,15 @@ | ||||
| name: 'Install Nix' | ||||
| description: 'Installs Nix on GitHub Actions for the supported platforms: Linux and macOS.' | ||||
| author: 'Domen Kožar' | ||||
| inputs: | ||||
|   install_url: | ||||
|     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' | ||||
|   | ||||
							
								
								
									
										67
									
								
								lib/install-nix.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										67
									
								
								lib/install-nix.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,67 @@ | ||||
| #!/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" | 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 | ||||
| if [[ ! $INPUT_EXTRA_NIX_CONFIG =~ "experimental-features" ]]; then   | ||||
|   add_config "experimental-features = nix-command flakes" | ||||
| fi | ||||
|  | ||||
| # Nix installer flags | ||||
| installer_options=( | ||||
|   --no-channel-add | ||||
|   --darwin-use-unencrypted-nix-store-volume | ||||
|   --nix-extra-conf-file /tmp/nix.conf | ||||
| ) | ||||
|  | ||||
| # only use the nix-daemon settings if on darwin (which get ignored) or systemd is supported | ||||
| if [[ $OSTYPE =~ darwin || -e /run/systemd/system ]]; then | ||||
|   installer_options+=( | ||||
|     --daemon | ||||
|     --daemon-user-count `python -c 'import multiprocessing as mp; print(mp.cpu_count() * 2)'` | ||||
|   ) | ||||
| else | ||||
|   # "fix" the following error when running nix* | ||||
|   # error: the group 'nixbld' specified in 'build-users-group' does not exist | ||||
|   mkdir -m 0755 /etc/nix | ||||
|   echo "build-users-group =" > /etc/nix/nix.conf | ||||
| fi | ||||
|  | ||||
| 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[@]}" | ||||
| sh <(curl --retry 5 --retry-connrefused -L "${INPUT_INSTALL_URL:-https://nixos.org/nix/install}") "${installer_options[@]}" | ||||
|  | ||||
| if [[ $OSTYPE =~ darwin ]]; then | ||||
|   # macOS needs certificates hints | ||||
|   cert_file=/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt | ||||
|   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 "/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 | ||||
							
								
								
									
										77
									
								
								lib/main.js
									
									
									
									
									
								
							
							
						
						
									
										77
									
								
								lib/main.js
									
									
									
									
									
								
							| @@ -1,77 +1,4 @@ | ||||
| "use strict"; | ||||
| var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||||
|     function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||||
|     return new (P || (P = Promise))(function (resolve, reject) { | ||||
|         function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||||
|         function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||||
|         function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||||
|         step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||||
|     }); | ||||
| }; | ||||
| var __importStar = (this && this.__importStar) || function (mod) { | ||||
|     if (mod && mod.__esModule) return mod; | ||||
|     var result = {}; | ||||
|     if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; | ||||
|     result["default"] = mod; | ||||
|     return result; | ||||
| }; | ||||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||||
| const core = __importStar(require("@actions/core")); | ||||
| const exec = __importStar(require("@actions/exec")); | ||||
| const tc = __importStar(require("@actions/tool-cache")); | ||||
| const os_1 = require("os"); | ||||
| function nixConf() { | ||||
|     return __awaiter(this, void 0, void 0, function* () { | ||||
|         // Workaround a segfault: https://github.com/NixOS/nix/issues/2733 | ||||
|         yield exec.exec("sudo", ["mkdir", "-p", "/etc/nix"]); | ||||
|         yield exec.exec("sudo", ["sh", "-c", "echo http2 = false >> /etc/nix/nix.conf"]); | ||||
|         // Set jobs to number of cores | ||||
|         yield exec.exec("sudo", ["sh", "-c", "echo max-jobs = auto >> /etc/nix/nix.conf"]); | ||||
|         // Allow binary caches for runner user | ||||
|         yield exec.exec("sudo", ["sh", "-c", "echo trusted-users = root runner >> /etc/nix/nix.conf"]); | ||||
|     }); | ||||
| } | ||||
| function run() { | ||||
|     return __awaiter(this, void 0, void 0, function* () { | ||||
|         try { | ||||
|             const PATH = process.env.PATH; | ||||
|             const INSTALL_PATH = '/opt/nix'; | ||||
|             yield nixConf(); | ||||
|             // Catalina workaround https://github.com/NixOS/nix/issues/2925 | ||||
|             if (os_1.type() == "Darwin") { | ||||
|                 yield exec.exec("sudo", ["sh", "-c", `echo \"nix\t${INSTALL_PATH}\"  >> /etc/synthetic.conf`]); | ||||
|                 yield exec.exec("sudo", ["sh", "-c", `mkdir -m 0755 ${INSTALL_PATH} && chown runner ${INSTALL_PATH}`]); | ||||
|                 yield exec.exec("/System/Library/Filesystems/apfs.fs/Contents/Resources/apfs.util", ["-B"]); | ||||
|                 // Needed for sudo to pass NIX_IGNORE_SYMLINK_STORE | ||||
|                 yield exec.exec("sudo", ["sh", "-c", "echo 'Defaults env_keep += NIX_IGNORE_SYMLINK_STORE'  >> /etc/sudoers"]); | ||||
|                 core.exportVariable('NIX_IGNORE_SYMLINK_STORE', "1"); | ||||
|                 // Needed for nix-daemon installation | ||||
|                 yield exec.exec("sudo", ["launchctl", "setenv", "NIX_IGNORE_SYMLINK_STORE", "1"]); | ||||
|             } | ||||
|             // Needed due to multi-user being too defensive | ||||
|             core.exportVariable('ALLOW_PREEXISTING_INSTALLATION', "1"); | ||||
|             // TODO: retry due to all the things that go wrong | ||||
|             const nixInstall = yield tc.downloadTool('https://nixos.org/nix/install'); | ||||
|             yield exec.exec("sh", [nixInstall, "--daemon"]); | ||||
|             // write nix.conf again as installation overwrites it, reload the daemon to pick up changes | ||||
|             yield nixConf(); | ||||
|             yield exec.exec("sudo", ["pkill", "-HUP", "nix-daemon"]); | ||||
|             // setup env | ||||
|             core.exportVariable('PATH', `${PATH}:/nix/var/nix/profiles/default/bin:/nix/var/nix/profiles/per-user/runner/profile/bin`); | ||||
|             core.exportVariable('NIX_PATH', `/nix/var/nix/profiles/per-user/root/channels`); | ||||
|             if (os_1.type() == "Darwin") { | ||||
|                 // macOS needs certificates hints | ||||
|                 core.exportVariable('NIX_SSL_CERT_FILE', '/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt'); | ||||
|                 // TODO: nc doesn't work correctly on macOS :( | ||||
|                 //await exec.exec("sh", ["-c", "while ! nc -zU /nix/var/nix/daemon-socket/socket; do sleep 0.5; done"]); | ||||
|                 // macOS needs time to reload the daemon :( | ||||
|                 yield exec.exec("sleep", ["10"]); | ||||
|             } | ||||
|         } | ||||
|         catch (error) { | ||||
|             core.setFailed(`Action failed with error: ${error}`); | ||||
|             throw (error); | ||||
|         } | ||||
|     }); | ||||
| } | ||||
| run(); | ||||
| const child_process_1 = require("child_process"); | ||||
| child_process_1.execFileSync(`${__dirname}/install-nix.sh`, { stdio: 'inherit' }); | ||||
|   | ||||
| @@ -1,8 +0,0 @@ | ||||
| "use strict"; | ||||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||||
| function extrasperse(elem, array) { | ||||
|     const init = []; | ||||
|     return array.reduce((r, a) => r.concat(elem, a), init); | ||||
| } | ||||
| exports.extrasperse = extrasperse; | ||||
| ; | ||||
| @@ -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" | ||||
|   }, | ||||
|   | ||||
							
								
								
									
										69
									
								
								src/main.ts
									
									
									
									
									
								
							
							
						
						
									
										69
									
								
								src/main.ts
									
									
									
									
									
								
							| @@ -1,68 +1,3 @@ | ||||
| import * as core from '@actions/core'; | ||||
| import * as exec from '@actions/exec'; | ||||
| import * as tc from '@actions/tool-cache'; | ||||
| import {type} from 'os'; | ||||
| import { execFileSync } from 'child_process'; | ||||
|  | ||||
| async function nixConf() { | ||||
|     // Workaround a segfault: https://github.com/NixOS/nix/issues/2733 | ||||
|     await exec.exec("sudo", ["mkdir", "-p", "/etc/nix"]); | ||||
|     await exec.exec("sudo", ["sh", "-c", "echo http2 = false >> /etc/nix/nix.conf"]); | ||||
|  | ||||
|     // Set jobs to number of cores | ||||
|     await exec.exec("sudo", ["sh", "-c", "echo max-jobs = auto >> /etc/nix/nix.conf"]); | ||||
|  | ||||
|     // Allow binary caches for runner user | ||||
|     await exec.exec("sudo", ["sh", "-c", "echo trusted-users = root runner >> /etc/nix/nix.conf"]); | ||||
| } | ||||
|  | ||||
| async function run() { | ||||
|   try { | ||||
|     const PATH = process.env.PATH;   | ||||
|     const INSTALL_PATH = '/opt/nix'; | ||||
|   | ||||
|     await nixConf(); | ||||
|  | ||||
|     // Catalina workaround https://github.com/NixOS/nix/issues/2925 | ||||
|     if (type() == "Darwin") { | ||||
|       await exec.exec("sudo", ["sh", "-c", `echo \"nix\t${INSTALL_PATH}\"  >> /etc/synthetic.conf`]); | ||||
|       await exec.exec("sudo", ["sh", "-c", `mkdir -m 0755 ${INSTALL_PATH} && chown runner ${INSTALL_PATH}`]); | ||||
|       await exec.exec("/System/Library/Filesystems/apfs.fs/Contents/Resources/apfs.util", ["-B"]); | ||||
|  | ||||
|       // Needed for sudo to pass NIX_IGNORE_SYMLINK_STORE | ||||
|       await exec.exec("sudo", ["sh", "-c", "echo 'Defaults env_keep += NIX_IGNORE_SYMLINK_STORE'  >> /etc/sudoers"]); | ||||
|       core.exportVariable('NIX_IGNORE_SYMLINK_STORE', "1"); | ||||
|       // Needed for nix-daemon installation | ||||
|       await exec.exec("sudo", ["launchctl", "setenv", "NIX_IGNORE_SYMLINK_STORE", "1"]); | ||||
|     } | ||||
|  | ||||
|     // Needed due to multi-user being too defensive | ||||
|     core.exportVariable('ALLOW_PREEXISTING_INSTALLATION', "1");  | ||||
|  | ||||
|     // TODO: retry due to all the things that go wrong | ||||
|     const nixInstall = await tc.downloadTool('https://nixos.org/nix/install'); | ||||
|     await exec.exec("sh", [nixInstall, "--daemon"]); | ||||
|  | ||||
|     // write nix.conf again as installation overwrites it, reload the daemon to pick up changes | ||||
|     await nixConf(); | ||||
|     await exec.exec("sudo", ["pkill", "-HUP", "nix-daemon"]); | ||||
|  | ||||
|     // setup env | ||||
|     core.exportVariable('PATH', `${PATH}:/nix/var/nix/profiles/default/bin:/nix/var/nix/profiles/per-user/runner/profile/bin`) | ||||
|     core.exportVariable('NIX_PATH', `/nix/var/nix/profiles/per-user/root/channels`) | ||||
|     if (type() == "Darwin") { | ||||
|       // macOS needs certificates hints | ||||
|       core.exportVariable('NIX_SSL_CERT_FILE', '/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt'); | ||||
|  | ||||
|       // TODO: nc doesn't work correctly on macOS :( | ||||
|       //await exec.exec("sh", ["-c", "while ! nc -zU /nix/var/nix/daemon-socket/socket; do sleep 0.5; done"]); | ||||
|       // macOS needs time to reload the daemon :( | ||||
|       await exec.exec("sleep", ["10"]); | ||||
|     } | ||||
|  | ||||
|   } catch (error) { | ||||
|     core.setFailed(`Action failed with error: ${error}`); | ||||
|     throw(error); | ||||
|   }  | ||||
| } | ||||
|  | ||||
| run(); | ||||
| execFileSync(`${__dirname}/install-nix.sh`, { stdio: 'inherit' }); | ||||
|   | ||||
							
								
								
									
										7
									
								
								test.nix
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								test.nix
									
									
									
									
									
								
							| @@ -2,14 +2,17 @@ | ||||
| { 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" '' | ||||
|   ${lib.concatMapStringsSep "" drv (lib.range 1 num)} | ||||
| '' | ||||
| '' | ||||
|   | ||||
							
								
								
									
										192
									
								
								yarn.lock
									
									
									
									
									
								
							
							
						
						
									
										192
									
								
								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" | ||||
| @@ -424,9 +424,9 @@ acorn-walk@^6.0.1: | ||||
|   integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== | ||||
|  | ||||
| acorn@^5.5.3: | ||||
|   version "5.7.3" | ||||
|   resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" | ||||
|   integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== | ||||
|   version "5.7.4" | ||||
|   resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" | ||||
|   integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== | ||||
|  | ||||
| acorn@^6.0.1: | ||||
|   version "6.3.0" | ||||
| @@ -737,10 +737,10 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.2: | ||||
|     escape-string-regexp "^1.0.5" | ||||
|     supports-color "^5.3.0" | ||||
|  | ||||
| chownr@^1.1.1: | ||||
|   version "1.1.3" | ||||
|   resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" | ||||
|   integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== | ||||
| chownr@^1.1.4: | ||||
|   version "1.1.4" | ||||
|   resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" | ||||
|   integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== | ||||
|  | ||||
| ci-info@^2.0.0: | ||||
|   version "2.0.0" | ||||
| @@ -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" | ||||
| @@ -1227,7 +1222,7 @@ fragment-cache@^0.2.1: | ||||
|   dependencies: | ||||
|     map-cache "^0.2.2" | ||||
|  | ||||
| fs-minipass@^1.2.5: | ||||
| fs-minipass@^1.2.7: | ||||
|   version "1.2.7" | ||||
|   resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" | ||||
|   integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== | ||||
| @@ -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" | ||||
| @@ -2311,30 +2307,12 @@ minimatch@^3.0.4: | ||||
|   dependencies: | ||||
|     brace-expansion "^1.1.7" | ||||
|  | ||||
| minimist@0.0.8: | ||||
|   version "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, 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== | ||||
|  | ||||
| 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= | ||||
|  | ||||
| minipass@^2.6.0, minipass@^2.8.6: | ||||
|   version "2.8.6" | ||||
|   resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.8.6.tgz#620d889ace26356391d010ecb9458749df9b6db5" | ||||
|   integrity sha512-lFG7d6g3+/UaFDCOtqPiKAC9zngWWsQZl1g5q6gaONqrjq61SX2xFqXMleQiFVyDpYwa018E9hmlAFY22PCb+A== | ||||
|   dependencies: | ||||
|     safe-buffer "^5.1.2" | ||||
|     yallist "^3.0.0" | ||||
|  | ||||
| minipass@^2.9.0: | ||||
| minipass@^2.6.0, minipass@^2.9.0: | ||||
|   version "2.9.0" | ||||
|   resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" | ||||
|   integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== | ||||
| @@ -2342,10 +2320,10 @@ minipass@^2.9.0: | ||||
|     safe-buffer "^5.1.2" | ||||
|     yallist "^3.0.0" | ||||
|  | ||||
| minizlib@^1.2.1: | ||||
|   version "1.3.2" | ||||
|   resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.2.tgz#5d24764998f98112586f7e566bd4c0999769dad4" | ||||
|   integrity sha512-lsNFqSHdJ21EwKzCp12HHJGxSMtHkCW1EMA9cceG3MkMNARjuWotZnMe3NKNshAvFXpm4loZqmYsCmRwhS2JMw== | ||||
| minizlib@^1.3.3: | ||||
|   version "1.3.3" | ||||
|   resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" | ||||
|   integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== | ||||
|   dependencies: | ||||
|     minipass "^2.9.0" | ||||
|  | ||||
| @@ -2357,12 +2335,12 @@ mixin-deep@^1.2.0: | ||||
|     for-in "^1.0.2" | ||||
|     is-extendable "^1.0.1" | ||||
|  | ||||
| mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1: | ||||
|   version "0.5.1" | ||||
|   resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" | ||||
|   integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= | ||||
| mkdirp@0.x, mkdirp@^0.5.1, mkdirp@^0.5.5: | ||||
|   version "0.5.5" | ||||
|   resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" | ||||
|   integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== | ||||
|   dependencies: | ||||
|     minimist "0.0.8" | ||||
|     minimist "^1.2.5" | ||||
|  | ||||
| ms@2.0.0: | ||||
|   version "2.0.0" | ||||
| @@ -2411,9 +2389,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 +2558,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" | ||||
| @@ -2688,9 +2658,9 @@ path-key@^2.0.0, path-key@^2.0.1: | ||||
|   integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= | ||||
|  | ||||
| path-parse@^1.0.6: | ||||
|   version "1.0.6" | ||||
|   resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" | ||||
|   integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== | ||||
|   version "1.0.7" | ||||
|   resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" | ||||
|   integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== | ||||
|  | ||||
| path-type@^3.0.0: | ||||
|   version "3.0.0" | ||||
| @@ -2967,10 +2937,10 @@ rsvp@^4.8.4: | ||||
|   resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" | ||||
|   integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== | ||||
|  | ||||
| safe-buffer@^5.0.1, safe-buffer@^5.1.2: | ||||
|   version "5.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" | ||||
|   integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== | ||||
| safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1: | ||||
|   version "5.2.1" | ||||
|   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" | ||||
|   integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== | ||||
|  | ||||
| safe-buffer@~5.1.0, safe-buffer@~5.1.1: | ||||
|   version "5.1.2" | ||||
| @@ -3309,17 +3279,17 @@ symbol-tree@^3.2.2: | ||||
|   integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== | ||||
|  | ||||
| tar@^4: | ||||
|   version "4.4.13" | ||||
|   resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" | ||||
|   integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== | ||||
|   version "4.4.19" | ||||
|   resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" | ||||
|   integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== | ||||
|   dependencies: | ||||
|     chownr "^1.1.1" | ||||
|     fs-minipass "^1.2.5" | ||||
|     minipass "^2.8.6" | ||||
|     minizlib "^1.2.1" | ||||
|     mkdirp "^0.5.0" | ||||
|     safe-buffer "^5.1.2" | ||||
|     yallist "^3.0.3" | ||||
|     chownr "^1.1.4" | ||||
|     fs-minipass "^1.2.7" | ||||
|     minipass "^2.9.0" | ||||
|     minizlib "^1.3.3" | ||||
|     mkdirp "^0.5.5" | ||||
|     safe-buffer "^5.2.1" | ||||
|     yallist "^3.1.1" | ||||
|  | ||||
| test-exclude@^5.2.3: | ||||
|   version "5.2.3" | ||||
| @@ -3337,9 +3307,9 @@ throat@^4.0.0: | ||||
|   integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= | ||||
|  | ||||
| tmpl@1.0.x: | ||||
|   version "1.0.4" | ||||
|   resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" | ||||
|   integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= | ||||
|   version "1.0.5" | ||||
|   resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" | ||||
|   integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== | ||||
|  | ||||
| to-fast-properties@^2.0.0: | ||||
|   version "2.0.0" | ||||
| @@ -3459,12 +3429,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 +3576,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= | ||||
| @@ -3643,9 +3605,9 @@ write-file-atomic@2.4.1: | ||||
|     signal-exit "^3.0.2" | ||||
|  | ||||
| ws@^5.2.0: | ||||
|   version "5.2.2" | ||||
|   resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" | ||||
|   integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== | ||||
|   version "5.2.3" | ||||
|   resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.3.tgz#05541053414921bc29c63bee14b8b0dd50b07b3d" | ||||
|   integrity sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA== | ||||
|   dependencies: | ||||
|     async-limiter "~1.0.0" | ||||
|  | ||||
| @@ -3655,14 +3617,14 @@ 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" | ||||
|   resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.0.tgz#906cc2100972dc2625ae78f566a2577230a1d6f7" | ||||
|   integrity sha512-6gpP93MR+VOOehKbCPchro3wFZNSNmek8A2kbkOAZLIZAYx1KP/zAqwO0sOHi3xJEb+UBz8NaYt/17UNit1Q9w== | ||||
| yallist@^3.0.0, yallist@^3.1.1: | ||||
|   version "3.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" | ||||
|   integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== | ||||
|  | ||||
| yargs-parser@10.x: | ||||
|   version "10.1.0" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user