Compare commits
10 Commits
fix-ci
...
fix-nix-2.
Author | SHA1 | Date | |
---|---|---|---|
167742cb88 | |||
3755e30bd2 | |||
b15708fdde | |||
c04fcbc179 | |||
a590bb1bf6 | |||
d0ac6617f6 | |||
11f4ad19be | |||
daddc62a2e | |||
4024cf0f9d | |||
3d1155ed72 |
21
README.md
21
README.md
@ -33,8 +33,8 @@ jobs:
|
||||
tests:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2.4.0
|
||||
- uses: cachix/install-nix-action@v15
|
||||
- uses: actions/checkout@v3
|
||||
- uses: cachix/install-nix-action@v18
|
||||
with:
|
||||
nix_path: nixpkgs=channel:nixos-unstable
|
||||
- run: nix-build
|
||||
@ -52,11 +52,10 @@ jobs:
|
||||
tests:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2.4.0
|
||||
- uses: cachix/install-nix-action@v15
|
||||
- uses: actions/checkout@v3
|
||||
- uses: cachix/install-nix-action@v18
|
||||
with:
|
||||
extra_nix_config: |
|
||||
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
|
||||
github_access_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
- run: nix build
|
||||
- run: nix flake check
|
||||
```
|
||||
@ -65,11 +64,15 @@ To install Nix from any commit, go to [the corresponding installer_test action](
|
||||
|
||||
## Inputs (specify using `with:`)
|
||||
|
||||
- `extra_nix_config`: append to `/etc/nix/nix.conf`
|
||||
|
||||
- `github_access_token`: configure nix to pull from github using the given github token. This helps work around rate limit issues.
|
||||
|
||||
- `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`
|
||||
- `install_options`: Additional installer flags passed to the installer script.
|
||||
|
||||
- `extra_nix_config`: append to `/etc/nix/nix.conf`
|
||||
- `nix_path`: set `NIX_PATH` environment variable, for example `nixpkgs=channel:nixos-unstable`
|
||||
|
||||
---
|
||||
|
||||
@ -119,7 +122,7 @@ 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
|
||||
- uses: cachix/install-nix-action@v18
|
||||
with:
|
||||
extra_nix_config: |
|
||||
trusted-public-keys = hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
|
||||
|
13
action.yml
13
action.yml
@ -2,14 +2,16 @@ name: 'Install Nix'
|
||||
description: 'Installs Nix on GitHub Actions for the supported platforms: Linux and macOS.'
|
||||
author: 'Domen Kožar'
|
||||
inputs:
|
||||
extra_nix_config:
|
||||
description: 'Gets appended to `/etc/nix/nix.conf` if passed.'
|
||||
github_access_token:
|
||||
description: 'Configure nix to pull from github using the given github token.'
|
||||
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'
|
||||
@ -19,7 +21,8 @@ runs:
|
||||
- run : ${{ github.action_path }}/install-nix.sh
|
||||
shell: bash
|
||||
env:
|
||||
INPUT_INSTALL_URL: ${{ inputs.install_url }}
|
||||
INPUT_INSTALL_OPTIONS: ${{ inputs.install_options }}
|
||||
INPUT_NIX_PATH: ${{ inputs.nix_path }}
|
||||
INPUT_EXTRA_NIX_CONFIG: ${{ inputs.extra_nix_config }}
|
||||
INPUT_GITHUB_ACCESS_TOKEN: ${{ inputs.github_access_token }}
|
||||
INPUT_INSTALL_OPTIONS: ${{ inputs.install_options }}
|
||||
INPUT_INSTALL_URL: ${{ inputs.install_url }}
|
||||
INPUT_NIX_PATH: ${{ inputs.nix_path }}
|
||||
|
@ -20,7 +20,11 @@ add_config() {
|
||||
# Set jobs to number of cores
|
||||
add_config "max-jobs = auto"
|
||||
# Allow binary caches for user
|
||||
add_config "trusted-users = root $USER"
|
||||
add_config "trusted-users = root ${USER:-}"
|
||||
# Add github access token
|
||||
if [[ $INPUT_GITHUB_ACCESS_TOKEN != "" ]]; then
|
||||
add_config "access-tokens" "github.com=$INPUT_GITHUB_ACCESS_TOKEN"
|
||||
fi
|
||||
# Append extra nix configuration if provided
|
||||
if [[ $INPUT_EXTRA_NIX_CONFIG != "" ]]; then
|
||||
add_config "$INPUT_EXTRA_NIX_CONFIG"
|
||||
@ -37,7 +41,7 @@ installer_options=(
|
||||
)
|
||||
|
||||
# only use the nix-daemon settings if on darwin (which get ignored) or systemd is supported
|
||||
if [[ $OSTYPE =~ darwin || -e /run/systemd/system ]]; then
|
||||
if [[ (! $INPUT_INSTALL_OPTIONS =~ "--no-daemon") && ($OSTYPE =~ darwin || -e /run/systemd/system) ]]; then
|
||||
installer_options+=(
|
||||
--daemon
|
||||
--daemon-user-count "$(python3 -c 'import multiprocessing as mp; print(mp.cpu_count() * 2)')"
|
||||
@ -82,7 +86,8 @@ fi
|
||||
|
||||
# Set paths
|
||||
echo "/nix/var/nix/profiles/default/bin" >> "$GITHUB_PATH"
|
||||
echo "/nix/var/nix/profiles/per-user/$USER/profile/bin" >> "$GITHUB_PATH"
|
||||
# new path for nix 2.14
|
||||
echo "$HOME/.nix-profile/bin" >> "$GITHUB_PATH"
|
||||
|
||||
if [[ $INPUT_NIX_PATH != "" ]]; then
|
||||
echo "NIX_PATH=${INPUT_NIX_PATH}" >> "$GITHUB_ENV"
|
||||
|
Reference in New Issue
Block a user