Compare commits

..

18 Commits

Author SHA1 Message Date
0383d0d550 Fix flakes example and add a test 2020-12-22 11:45:56 +01:00
661bbdf5ce Merge pull request #55 from numtide/idempotent
idempotent installation
2020-11-02 19:47:38 +01:00
334bb6100b idempotent installation
Don't run the installer if Nix has already been installed on the host.
We assume that the installed Nix is already in the desired state.

This allows to share a given pipeline between hosted and self-hosted
runners. Usually the self-hosted runners are long-lived and already have
Nix installed.
2020-11-02 12:35:41 +01:00
d5ba40b697 Merge pull request #53 from bbarker/patch-1
Adding more useful pinning reference to readme
2020-10-13 18:27:22 +02:00
fda16d28d8 Adding more useful pinning reference to readme 2020-10-13 11:26:47 -04:00
da678383b2 Merge pull request #52 from wamserma/patch-1
replace deprecated functions
2020-10-13 11:52:23 +02:00
8a37740405 replace deprecated functions
this should fix #50
2020-10-12 23:04:59 +02:00
28b1d88f39 Merge pull request #49 from cachix/dependabot/npm_and_yarn/actions/core-1.2.6
Bump @actions/core from 1.1.1 to 1.2.6
2020-10-02 00:42:40 +03:00
2767b618db Bump @actions/core from 1.1.1 to 1.2.6
Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.1.1 to 1.2.6.
- [Release notes](https://github.com/actions/toolkit/releases)
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core)

Signed-off-by: dependabot[bot] <support@github.com>
2020-10-01 17:21:05 +00:00
aee3ec7ef5 README: mention why install_url is useful 2020-09-21 18:54:24 +02:00
ba5c343622 CI: trigger push only on master 2020-09-21 16:41:22 +02:00
8389c1826a Update README.md 2020-09-21 16:25:56 +02:00
95a8068e31 README: v11 2020-09-21 15:16:33 +02:00
9e0a5291c3 Fix #35: document nixpkgs version printing 2020-09-21 15:12:38 +02:00
b093d8fdd9 Document #19 2020-09-21 15:10:35 +02:00
6b9133ebb9 README: typo 2020-09-21 15:00:53 +02:00
05229ec560 README: update 2020-09-21 15:00:28 +02:00
97465807a1 Merge pull request #47 from cachix/prepare-v10
Support self-hosted runners and always skip adding a channel
2020-09-21 14:58:38 +02:00
5 changed files with 59 additions and 20 deletions

View File

@ -2,6 +2,8 @@ name: "install-nix-action test"
on:
pull_request:
push:
branches:
- master
jobs:
simple-build:
@ -56,3 +58,23 @@ jobs:
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
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

@ -4,18 +4,19 @@
Installs [Nix](https://nixos.org/nix/) on GitHub Actions for the supported platforms: Linux and macOS.
By default it has no channels 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/)
or [pin nixpkgs yourself](https://nix.dev/tutorials/towards-reproducibility-pinning-nixpkgs.html).
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 mode with sandboxing enabled on Linux
- 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
- Allows specifying extra Nix configration options
- Allows specifying `$NIX_PATH` and channels
- 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`
## Usage
@ -31,7 +32,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: cachix/install-nix-action@v10
- uses: cachix/install-nix-action@v11
with:
nix_path: nixpkgs=channel:nixos-unstable
- run: nix-build
@ -41,9 +42,9 @@ 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
```
```yaml
name: "Test"
on:
pull_request:
@ -58,7 +59,7 @@ jobs:
fetch-depth: 0
- uses: cachix/install-nix-action@v11
with:
install_url: https://github.com/numtide/nix-flakes-installer/releases/download/nix-3.0pre20200820_4d77513/install
install_url: https://github.com/numtide/nix-flakes-installer/releases/download/nix-3.0pre20201007_5257a25/install
extra_nix_config: |
experimental-features = nix-command flakes
- run: nix-build
@ -66,7 +67,7 @@ jobs:
## Inputs (specify using `with:`)
- `install_url`: specify URL to install Nix from (useful for testing non-stable releases)
- `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`
@ -74,6 +75,17 @@ jobs:
---
## FAQ
### Is it possible to run NixOS tests / Qemu+KVM with GitHub Actions?
[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 with the channel I have configured?
```nix-instantiate --eval -E '(import <nixpkgs> {}).lib.version'```
## Hacking
Install the dependencies

View File

@ -1,6 +1,11 @@
#!/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" | sudo tee -a /tmp/nix.conf >/dev/null
@ -35,15 +40,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/$USER/profile/bin"
echo "::add-path::/nix/var/nix/profiles/default/bin"
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 "::set-env name=NIX_PATH::${INPUT_NIX_PATH}"
echo "NIX_PATH=${INPUT_NIX_PATH}" >> $GITHUB_ENV
fi

View File

@ -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"
},

View File

@ -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"