Compare commits

..

1 Commits

Author SHA1 Message Date
e583e9458b test 2020-09-28 21:55:27 +02:00
6 changed files with 23 additions and 71 deletions

View File

@ -9,7 +9,7 @@ jobs:
simple-build: simple-build:
strategy: strategy:
matrix: matrix:
os: [ubuntu-latest, macos-latest] os: [ubuntu-latest, macos-11.0]
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
@ -58,23 +58,3 @@ jobs:
sandbox = relaxed sandbox = relaxed
- run: cat /etc/nix/nix.conf - run: cat /etc/nix/nix.conf
- run: nix-build test.nix --arg noChroot true - 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

View File

@ -6,8 +6,7 @@ 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 default it has no nixpkgs configured, you have to set `nix_path`
by [picking a channel](https://status.nixos.org/) by [picking a channel](https://status.nixos.org/)
or [pin nixpkgs yourself](https://nix.dev/reference/pinning-nixpkgs.html) or [pin nixpkgs yourself](https://nix.dev/tutorials/towards-reproducibility-pinning-nixpkgs.html).
(see also [pinning tutorial](https://nix.dev/tutorials/towards-reproducibility-pinning-nixpkgs.html)).
# Features # Features
@ -17,7 +16,6 @@ or [pin nixpkgs yourself](https://nix.dev/reference/pinning-nixpkgs.html)
- Allows specifying Nix installation URL via `install_url` - Allows specifying Nix installation URL via `install_url`
- Allows specifying extra Nix configration options via `extra_nix_config` - Allows specifying extra Nix configration options via `extra_nix_config`
- Allows specifying `$NIX_PATH` and channels via `nix_path` - Allows specifying `$NIX_PATH` and channels via `nix_path`
- Share `/nix/store` between builds using [cachix-action](https://github.com/cachix/cachix-action) for simple binary cache setup to speed up your builds and share binaries with your team
## Usage ## Usage
@ -32,13 +30,16 @@ jobs:
tests: tests:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2.3.4 - uses: actions/checkout@v2
- uses: cachix/install-nix-action@v12 - uses: cachix/install-nix-action@v11
with: with:
nix_path: nixpkgs=channel:nixos-unstable nix_path: nixpkgs=channel:nixos-unstable
- run: nix-build - 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 ## Usage with Flakes
@ -55,9 +56,9 @@ jobs:
with: with:
# Nix Flakes doesn't work on shallow clones # Nix Flakes doesn't work on shallow clones
fetch-depth: 0 fetch-depth: 0
- uses: cachix/install-nix-action@v12 - uses: cachix/install-nix-action@v11
with: with:
install_url: https://github.com/numtide/nix-flakes-installer/releases/download/nix-2.4pre20201221_9fab14a/install install_url: https://github.com/numtide/nix-flakes-installer/releases/download/nix-3.0pre20200820_4d77513/install
extra_nix_config: | extra_nix_config: |
experimental-features = nix-command flakes experimental-features = nix-command flakes
- run: nix-build - run: nix-build
@ -79,29 +80,11 @@ 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). [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 I have configured? ### How do I print nixpkgs version with the channel I have configured?
```nix-instantiate --eval -E '(import <nixpkgs> {}).lib.version'``` ```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 ## Hacking
Install the dependencies Install the dependencies

View File

@ -3,9 +3,7 @@ description: 'Installs Nix on GitHub Actions for the supported platforms: Linux
author: 'Domen Kožar' author: 'Domen Kožar'
inputs: inputs:
install_url: 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: nix_path:
description: 'Set NIX_PATH environment variable.' description: 'Set NIX_PATH environment variable.'
extra_nix_config: extra_nix_config:

View File

@ -1,11 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -euo pipefail set -euo pipefail
if type -p nix &>/dev/null ; then
echo "Aborting: Nix is already installed at $(type -p nix)"
exit
fi
# Configure Nix # Configure Nix
add_config() { add_config() {
echo "$1" | sudo tee -a /tmp/nix.conf >/dev/null echo "$1" | sudo tee -a /tmp/nix.conf >/dev/null
@ -27,11 +22,7 @@ installer_options=(
--darwin-use-unencrypted-nix-store-volume --darwin-use-unencrypted-nix-store-volume
--nix-extra-conf-file /tmp/nix.conf --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 # On self-hosted runners we don't need to install more than once
if [[ ! -d /nix/store ]] if [[ ! -d /nix/store ]]
then then
@ -44,15 +35,15 @@ if [[ $OSTYPE =~ darwin ]]; then
# macOS needs certificates hints # macOS needs certificates hints
cert_file=/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt cert_file=/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt
echo "NIX_SSL_CERT_FILE=$cert_file" >> "$GITHUB_ENV" echo "::set-env name=NIX_SSL_CERT_FILE::$cert_file"
export NIX_SSL_CERT_FILE=$cert_file export NIX_SSL_CERT_FILE=$cert_file
sudo launchctl setenv NIX_SSL_CERT_FILE "$cert_file" sudo launchctl setenv NIX_SSL_CERT_FILE "$cert_file"
fi fi
# Set paths # Set paths
echo "/nix/var/nix/profiles/per-user/$USER/profile/bin" >> "$GITHUB_PATH" echo "::add-path::/nix/var/nix/profiles/per-user/$USER/profile/bin"
echo "/nix/var/nix/profiles/default/bin" >> "$GITHUB_PATH" echo "::add-path::/nix/var/nix/profiles/default/bin"
if [[ $INPUT_NIX_PATH != "" ]]; then if [[ $INPUT_NIX_PATH != "" ]]; then
echo "NIX_PATH=${INPUT_NIX_PATH}" >> "$GITHUB_ENV" echo "::set-env name=NIX_PATH::${INPUT_NIX_PATH}"
fi fi

View File

@ -20,7 +20,7 @@
"author": "Domen Kožar", "author": "Domen Kožar",
"license": "ASL2", "license": "ASL2",
"dependencies": { "dependencies": {
"@actions/core": "^1.2.6", "@actions/core": "^1.1.0",
"@actions/exec": "^1.0.1", "@actions/exec": "^1.0.1",
"@actions/tool-cache": "^1.1.2" "@actions/tool-cache": "^1.1.2"
}, },

View File

@ -2,10 +2,10 @@
# yarn lockfile v1 # yarn lockfile v1
"@actions/core@^1.1.0", "@actions/core@^1.2.6": "@actions/core@^1.1.0":
version "1.2.6" version "1.1.1"
resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.2.6.tgz#a78d49f41a4def18e88ce47c2cac615d5694bf09" resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.1.1.tgz#e08f3dbfe04721bb3d040f8fca2d6d7e1817b2e1"
integrity sha512-ZQYitnqiyBc3D+k7LsgSBmMDVkOVidaagDG7j3fOym77jNunWRuYx7VSHa9GNfFZh+zh61xsCjRj4JxMZlDqTA== integrity sha512-O5G6EmlzTVsng7VSpNtszIoQq6kOgMGNTFB/hmwKNNA4V71JyxImCIrL27vVHCt2Cb3ImkaCr6o27C2MV9Ylwg==
"@actions/exec@^1.0.1": "@actions/exec@^1.0.1":
version "1.0.1" version "1.0.1"
@ -1452,9 +1452,9 @@ inherits@2, inherits@~2.0.3:
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
ini@~1.3.0: ini@~1.3.0:
version "1.3.8" version "1.3.5"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
invariant@^2.2.4: invariant@^2.2.4:
version "2.2.4" version "2.2.4"