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:
|
tests:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2.4.0
|
- uses: actions/checkout@v3
|
||||||
- uses: cachix/install-nix-action@v15
|
- uses: cachix/install-nix-action@v18
|
||||||
with:
|
with:
|
||||||
nix_path: nixpkgs=channel:nixos-unstable
|
nix_path: nixpkgs=channel:nixos-unstable
|
||||||
- run: nix-build
|
- run: nix-build
|
||||||
@ -52,11 +52,10 @@ jobs:
|
|||||||
tests:
|
tests:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2.4.0
|
- uses: actions/checkout@v3
|
||||||
- uses: cachix/install-nix-action@v15
|
- uses: cachix/install-nix-action@v18
|
||||||
with:
|
with:
|
||||||
extra_nix_config: |
|
github_access_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
|
|
||||||
- run: nix build
|
- run: nix build
|
||||||
- run: nix flake check
|
- 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:`)
|
## 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)
|
- `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:
|
install-nix-action's own `extra_nix_config` input:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- uses: cachix/install-nix-action@vXX
|
- uses: cachix/install-nix-action@v18
|
||||||
with:
|
with:
|
||||||
extra_nix_config: |
|
extra_nix_config: |
|
||||||
trusted-public-keys = hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
|
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.'
|
description: 'Installs Nix on GitHub Actions for the supported platforms: Linux and macOS.'
|
||||||
author: 'Domen Kožar'
|
author: 'Domen Kožar'
|
||||||
inputs:
|
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:
|
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:
|
install_options:
|
||||||
description: 'Additional installer flags passed to the installer script.'
|
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:
|
|
||||||
description: 'gets appended to `/etc/nix/nix.conf` if passed.'
|
|
||||||
branding:
|
branding:
|
||||||
color: 'blue'
|
color: 'blue'
|
||||||
icon: 'sun'
|
icon: 'sun'
|
||||||
@ -19,7 +21,8 @@ runs:
|
|||||||
- run : ${{ github.action_path }}/install-nix.sh
|
- run : ${{ github.action_path }}/install-nix.sh
|
||||||
shell: bash
|
shell: bash
|
||||||
env:
|
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_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
|
# Set jobs to number of cores
|
||||||
add_config "max-jobs = auto"
|
add_config "max-jobs = auto"
|
||||||
# Allow binary caches for user
|
# 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
|
# Append extra nix configuration if provided
|
||||||
if [[ $INPUT_EXTRA_NIX_CONFIG != "" ]]; then
|
if [[ $INPUT_EXTRA_NIX_CONFIG != "" ]]; then
|
||||||
add_config "$INPUT_EXTRA_NIX_CONFIG"
|
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
|
# 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+=(
|
installer_options+=(
|
||||||
--daemon
|
--daemon
|
||||||
--daemon-user-count "$(python3 -c 'import multiprocessing as mp; print(mp.cpu_count() * 2)')"
|
--daemon-user-count "$(python3 -c 'import multiprocessing as mp; print(mp.cpu_count() * 2)')"
|
||||||
@ -82,7 +86,8 @@ fi
|
|||||||
|
|
||||||
# Set paths
|
# Set paths
|
||||||
echo "/nix/var/nix/profiles/default/bin" >> "$GITHUB_PATH"
|
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
|
if [[ $INPUT_NIX_PATH != "" ]]; then
|
||||||
echo "NIX_PATH=${INPUT_NIX_PATH}" >> "$GITHUB_ENV"
|
echo "NIX_PATH=${INPUT_NIX_PATH}" >> "$GITHUB_ENV"
|
||||||
|
Reference in New Issue
Block a user