Compare commits

..

67 commits
v23 ... master

Author SHA1 Message Date
sander 5261181216
Merge pull request #236 from Mic92/nix-2.28.3
Some checks failed
install-nix-action test / flakes (ubuntu-latest) (push) Failing after 58s
install-nix-action test / simple-build (ubuntu-latest) (push) Failing after 1m15s
install-nix-action test / extra-nix-config (ubuntu-latest) (push) Failing after 1m11s
install-nix-action test / act-support (ubuntu-latest) (push) Failing after 1m3s
install-nix-action test / custom-nix-path (ubuntu-latest) (push) Failing after 1m15s
install-nix-action test / oldest-supported-installer (ubuntu-latest) (push) Failing after 1m7s
install-nix-action test / latest-installer (ubuntu-latest, x86_64-linux) (push) Successful in 1m48s
install-nix-action test / simple-build (macos-13) (push) Has been cancelled
install-nix-action test / simple-build (macos-latest) (push) Has been cancelled
install-nix-action test / simple-build (ubuntu-24.04-arm) (push) Has been cancelled
install-nix-action test / custom-nix-path (macos-13) (push) Has been cancelled
install-nix-action test / custom-nix-path (macos-latest) (push) Has been cancelled
install-nix-action test / custom-nix-path (ubuntu-24.04-arm) (push) Has been cancelled
install-nix-action test / extra-nix-config (macos-13) (push) Has been cancelled
install-nix-action test / extra-nix-config (macos-latest) (push) Has been cancelled
install-nix-action test / extra-nix-config (ubuntu-24.04-arm) (push) Has been cancelled
install-nix-action test / flakes (macos-13) (push) Has been cancelled
install-nix-action test / flakes (macos-latest) (push) Has been cancelled
install-nix-action test / flakes (ubuntu-24.04-arm) (push) Has been cancelled
install-nix-action test / latest-installer (macos-13, x86_64-darwin) (push) Has been cancelled
install-nix-action test / latest-installer (macos-latest, aarch64-darwin) (push) Has been cancelled
install-nix-action test / latest-installer (ubuntu-24.04-arm, aarch64-linux) (push) Has been cancelled
install-nix-action test / oldest-supported-installer (macos-13) (push) Has been cancelled
install-nix-action test / oldest-supported-installer (macos-latest) (push) Has been cancelled
install-nix-action test / oldest-supported-installer (ubuntu-24.04-arm) (push) Has been cancelled
2025-04-30 19:55:33 +04:00
Jörg Thalheim b2b89c6cb1 nix: 2.28.2 -> 2.28.3 2025-04-30 08:22:03 +02:00
sander 0c65bbe3c1
Merge pull request #235 from cachix/docs-aws-creds
Some checks failed
install-nix-action test / simple-build (ubuntu-latest) (push) Failing after 1m4s
install-nix-action test / custom-nix-path (ubuntu-latest) (push) Failing after 1m2s
install-nix-action test / flakes (ubuntu-latest) (push) Failing after 1m2s
install-nix-action test / extra-nix-config (ubuntu-latest) (push) Failing after 1m4s
install-nix-action test / act-support (ubuntu-latest) (push) Failing after 1m5s
install-nix-action test / oldest-supported-installer (ubuntu-latest) (push) Failing after 1m8s
install-nix-action test / latest-installer (ubuntu-latest, x86_64-linux) (push) Successful in 1m40s
install-nix-action test / simple-build (macos-13) (push) Has been cancelled
install-nix-action test / simple-build (macos-latest) (push) Has been cancelled
install-nix-action test / simple-build (ubuntu-24.04-arm) (push) Has been cancelled
install-nix-action test / custom-nix-path (macos-13) (push) Has been cancelled
install-nix-action test / custom-nix-path (macos-latest) (push) Has been cancelled
install-nix-action test / custom-nix-path (ubuntu-24.04-arm) (push) Has been cancelled
install-nix-action test / extra-nix-config (macos-13) (push) Has been cancelled
install-nix-action test / extra-nix-config (macos-latest) (push) Has been cancelled
install-nix-action test / extra-nix-config (ubuntu-24.04-arm) (push) Has been cancelled
install-nix-action test / flakes (macos-13) (push) Has been cancelled
install-nix-action test / flakes (macos-latest) (push) Has been cancelled
install-nix-action test / flakes (ubuntu-24.04-arm) (push) Has been cancelled
install-nix-action test / latest-installer (macos-13, x86_64-darwin) (push) Has been cancelled
install-nix-action test / latest-installer (macos-latest, aarch64-darwin) (push) Has been cancelled
install-nix-action test / latest-installer (ubuntu-24.04-arm, aarch64-linux) (push) Has been cancelled
install-nix-action test / oldest-supported-installer (macos-13) (push) Has been cancelled
install-nix-action test / oldest-supported-installer (macos-latest) (push) Has been cancelled
install-nix-action test / oldest-supported-installer (ubuntu-24.04-arm) (push) Has been cancelled
2025-04-24 09:43:50 +02:00
Sander 4f800b725c
docs: document how to provide AWS credentials to the nix-daemon
Fixes #229.
2025-04-23 15:21:58 +04:00
sander 80f8d94dab
Merge pull request #234 from cachix/dependabot/github_actions/actions/checkout-4.2.2
Some checks failed
install-nix-action test / simple-build (macos-13) (push) Waiting to run
install-nix-action test / simple-build (macos-latest) (push) Waiting to run
install-nix-action test / simple-build (ubuntu-24.04-arm) (push) Waiting to run
install-nix-action test / custom-nix-path (macos-13) (push) Waiting to run
install-nix-action test / custom-nix-path (macos-latest) (push) Waiting to run
install-nix-action test / custom-nix-path (ubuntu-24.04-arm) (push) Waiting to run
install-nix-action test / extra-nix-config (macos-13) (push) Waiting to run
install-nix-action test / extra-nix-config (macos-latest) (push) Waiting to run
install-nix-action test / extra-nix-config (ubuntu-24.04-arm) (push) Waiting to run
install-nix-action test / flakes (macos-13) (push) Waiting to run
install-nix-action test / flakes (macos-latest) (push) Waiting to run
install-nix-action test / flakes (ubuntu-24.04-arm) (push) Waiting to run
install-nix-action test / latest-installer (macos-13, x86_64-darwin) (push) Waiting to run
install-nix-action test / latest-installer (macos-latest, aarch64-darwin) (push) Waiting to run
install-nix-action test / latest-installer (ubuntu-24.04-arm, aarch64-linux) (push) Waiting to run
install-nix-action test / oldest-supported-installer (macos-13) (push) Waiting to run
install-nix-action test / oldest-supported-installer (macos-latest) (push) Waiting to run
install-nix-action test / oldest-supported-installer (ubuntu-24.04-arm) (push) Waiting to run
install-nix-action test / simple-build (ubuntu-latest) (push) Failing after 1m12s
install-nix-action test / oldest-supported-installer (ubuntu-latest) (push) Failing after 1m5s
install-nix-action test / extra-nix-config (ubuntu-latest) (push) Failing after 1m15s
install-nix-action test / act-support (ubuntu-latest) (push) Failing after 1m11s
install-nix-action test / custom-nix-path (ubuntu-latest) (push) Failing after 1m23s
install-nix-action test / flakes (ubuntu-latest) (push) Failing after 1m21s
install-nix-action test / latest-installer (ubuntu-latest, x86_64-linux) (push) Successful in 1m56s
chore(deps): bump actions/checkout from 4.1.1 to 4.2.2
2025-04-23 13:18:03 +02:00
dependabot[bot] 83772d105a
chore(deps): bump actions/checkout from 4.1.1 to 4.2.2
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.1 to 4.2.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](b4ffde65f4...11bd71901b)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 4.2.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-21 00:43:21 +00:00
sander 48cf9b5849
Merge pull request #201 from l0b0/feat/pin-actions
Some checks failed
install-nix-action test / custom-nix-path (ubuntu-latest) (push) Failing after 1m9s
install-nix-action test / extra-nix-config (ubuntu-latest) (push) Failing after 1m13s
install-nix-action test / flakes (ubuntu-latest) (push) Failing after 1m19s
install-nix-action test / simple-build (ubuntu-latest) (push) Failing after 1m25s
install-nix-action test / oldest-supported-installer (ubuntu-latest) (push) Failing after 1m22s
install-nix-action test / act-support (ubuntu-latest) (push) Failing after 1m20s
install-nix-action test / latest-installer (ubuntu-latest, x86_64-linux) (push) Successful in 1m46s
install-nix-action test / simple-build (macos-13) (push) Has been cancelled
install-nix-action test / simple-build (macos-latest) (push) Has been cancelled
install-nix-action test / simple-build (ubuntu-24.04-arm) (push) Has been cancelled
install-nix-action test / custom-nix-path (macos-13) (push) Has been cancelled
install-nix-action test / custom-nix-path (macos-latest) (push) Has been cancelled
install-nix-action test / custom-nix-path (ubuntu-24.04-arm) (push) Has been cancelled
install-nix-action test / extra-nix-config (macos-13) (push) Has been cancelled
install-nix-action test / extra-nix-config (macos-latest) (push) Has been cancelled
install-nix-action test / extra-nix-config (ubuntu-24.04-arm) (push) Has been cancelled
install-nix-action test / flakes (macos-13) (push) Has been cancelled
install-nix-action test / flakes (macos-latest) (push) Has been cancelled
install-nix-action test / flakes (ubuntu-24.04-arm) (push) Has been cancelled
install-nix-action test / latest-installer (macos-13, x86_64-darwin) (push) Has been cancelled
install-nix-action test / latest-installer (macos-latest, aarch64-darwin) (push) Has been cancelled
install-nix-action test / latest-installer (ubuntu-24.04-arm, aarch64-linux) (push) Has been cancelled
install-nix-action test / oldest-supported-installer (macos-13) (push) Has been cancelled
install-nix-action test / oldest-supported-installer (macos-latest) (push) Has been cancelled
install-nix-action test / oldest-supported-installer (ubuntu-24.04-arm) (push) Has been cancelled
feat: Pin actions to hashes
2025-04-18 23:30:19 +02:00
Sander eafea807c1
remove unused gitignores 2025-04-19 01:29:11 +04:00
Sander 9b4ef2ff2d
docs: add release notes 2025-04-19 01:26:12 +04:00
sander 754537aaed
Merge pull request #232 from Mic92/nix-update
nix: 2.26.3 -> 2.28.2
2025-04-18 19:09:16 +02:00
Jörg Thalheim edf986efb3 nix: 2.26.3 -> 2.28.2 2025-04-18 10:45:31 +02:00
Victor Engmark f3ff3f99d8
feat: Pin actions to hashes
Done with pin-github-action <https://github.com/mheap/pin-github-action>
1.8.0 using `npx pin-github-action .github/workflows/*.yml`, and then
manually bumping the version tag to the relevant number.

This fixes the issue that it is common practice for GitHub Actions
authors to move major tags when releasing new minor versions.

Dependabot supports updating in the same fashion, bumping the version
tag when updating the hash.
2025-04-07 17:54:09 +02:00
sander d1ca217b38
Merge pull request #231 from Enzime/untrusted-users
action: add option to configure updating trusted users
2025-03-31 20:10:01 +02:00
Michael Hoang 21e6bcccb0 action: add option to configure updating trusted users 2025-04-01 01:07:35 +09:00
sander 53fb48f556
Merge pull request #230 from cachix/remove-deprecated-flag
Remove deprecated `--darwin-use-unencrypted-nix-store-volume` flag
2025-03-20 23:54:08 +00:00
Sander b21ff82707
Remove deprecated --darwin-use-unencrypted-nix-store-volume flag
Fixes the following warning:

```
Warning: the flag --darwin-use-unencrypted-nix-store-volume is no longer needed and will be removed in the future.
````
2025-03-20 22:59:31 +00:00
sander 02a151ada4
Merge pull request #228 from cachix/bump-nix
nix: 2.26.2 -> 2.26.3
2025-03-15 19:13:39 +00:00
Sander 066004291c
nix: 2.26.2 -> 2.26.3 2025-03-15 20:06:12 +01:00
Sander e8dbd0c992
docs: update readme with latest version 2025-03-10 17:58:37 +01:00
sander 91a0719595
Merge pull request #226 from Mic92/nix-update 2025-02-20 00:36:56 +04:00
Jörg Thalheim d81eadf041 nix: 2.25.2 -> 2.26.2 2025-02-14 11:25:14 +07:00
sander 3d69a1d4d2
Merge pull request #221 from msgilligan/msgilligan/github-test-aarch64-linux 2025-01-20 01:23:27 +04:00
Sean Gilligan 265a04a520 GitHub test.yml: add ubuntu-24.04-arm to matrix 2025-01-16 12:24:48 -08:00
sander 89fd1e98db
Merge pull request #220 from cachix/fix-master-tests
ci: fix latest installer tests
2024-12-31 13:32:15 +04:00
Sander a76df16350
ci: bump nixpkgs channel 2024-12-31 13:11:14 +04:00
Sander a49b703498
ci: fix act test 2024-12-31 13:00:44 +04:00
Sander f3f544c44b
ci: fix latest installer tests 2024-12-31 12:55:55 +04:00
Domen Kožar 14344b39ca
Merge pull request #218 from Mic92/nix-upgrade
nix: 2.24.9 -> 2.25.2
2024-11-26 08:35:08 +00:00
Jörg Thalheim b1deb06f62 nix: 2.24.9 -> 2.25.2 2024-11-26 07:16:14 +01:00
Domen Kožar 08dcb3a5e6
Merge pull request #217 from Enzime/bump
nix: 2.24.8 -> 2.24.9
2024-10-03 11:07:41 +01:00
Michael Hoang 4204e15198 nix: 2.24.8 -> 2.24.9 2024-10-03 12:35:16 +10:00
Domen Kožar 6a10e2e9fd
Merge pull request #216 from Mic92/nix-bump
Nix: 2.24.7 -> 2.24.8
2024-09-27 17:20:20 +01:00
Jörg Thalheim 2bb614e91a Nix: 2.24.7 -> 2.24.8
https://github.com/NixOS/nix/security/advisories/GHSA-6fjr-mq49-mm2c
2024-09-27 13:50:59 +02:00
Domen Kožar 9f70348d77
Merge pull request #215 from Mic92/nix-bump
Nix: 2.24.6 -> 2.24.7
2024-09-25 10:22:29 +01:00
Jörg Thalheim 4f91dc2b65 Nix: 2.24.6 -> 2.24.7
This version fixes GC bugs, which can be triggered under memory
pressure. Since GitHub runners are at times memory constraint,
it would be good to get this out.
2024-09-25 08:50:50 +02:00
Domen Kožar 3715ab1a11 bump channel 2024-09-12 11:05:26 +01:00
Domen Kožar 1872f1ff9d Nix: 2.22.1 -> 2.24.6 2024-09-11 13:30:32 +01:00
sander e268b7aa05
Merge pull request #213 from phaer/patch-1 2024-08-29 17:46:40 +04:00
Paul Haerle 5b8c65d4d7
Update README: hardware accel is available now...
...at least with enable_kvm yes. Issue linked in the note was closed accordingly. So I think the old note was outdated as of fe19c91c6b
2024-08-29 15:45:09 +02:00
Domen Kožar ba01fffc51
Merge pull request #210 from guoard/patch-1
docs(readme): update checkout action version
2024-06-14 15:07:40 +01:00
Ali Afsharzadeh 474f0a77aa
docs(readme): update checkout action version 2024-06-14 08:44:59 +03:30
Domen Kožar 725982224c
readme: V27 2024-05-15 15:47:17 +01:00
Domen Kožar ba0dd844c9
Merge pull request #208 from cachix/fix-macos-tests
ci: fix tests
2024-05-15 13:36:04 +02:00
Sander d9660bf088
ci: updated pinned installer 2024-05-15 11:09:57 +00:00
Domen Kožar 1e14eb01bf
Merge pull request #206 from kashw2/nix-update
nix: 2.20.5 -> 2.21.2
2024-05-15 12:57:56 +02:00
Domen Kožar 6060e02b1f
2.22.1 2024-05-15 11:34:15 +01:00
Domen Kožar 262815eb71
Merge pull request #207 from cachix/always-allow-substitutes
Enable `always-allow-substitutes` by default
2024-05-15 12:31:39 +02:00
Sander 5dce380a8b
Update README with more installer differences 2024-05-15 09:50:19 +00:00
Sander 2f469017fc
ci: update nixpkgs channel 2024-05-15 09:28:22 +00:00
Sander 529d659217
ci: add aarch64-darwin tests where possible 2024-05-15 09:23:14 +00:00
Sander d6c2f5b788
ci: switch to macos-13 2024-05-15 09:08:51 +00:00
Sander 01dba9f770
Update README 2024-05-14 22:11:41 +00:00
Sander 859c1e74ef
Enable always-allow-substitutes by default
A typical CI machine will have fast internet access, but may not have
all the inputs already in the store to rebuild trivial derivations
marked with `allowSubstitutes = false`. This leads to expensive cycles
of downloads and rebuilds for derivations like the top-level NixOS
system, which will be rebuilt from scratch on every CI run, despite
being cached.
2024-05-14 21:19:49 +00:00
kashw2 46095f4692 nix: 2.20.5 -> 2.21.2 2024-05-12 16:51:46 +10:00
Domen Kožar 8887e596b4 Nix: 2.20.5 2024-03-08 04:06:58 +00:00
Domen Kožar 39a075cc21
bump 2024-02-19 07:28:52 +00:00
Domen Kožar 6004951b18 Nix: 2.19.1 -> 2.19.2 2024-01-12 11:02:55 +00:00
Domen Kožar 7ac1ec2549
Nix 2.19.1 2023-11-28 15:48:58 +01:00
Domen Kožar dc33a216cb
Merge pull request #200 from cachix/fix/196
fix: don't use the default GitHub token for Enterprise
2023-11-28 13:27:50 +01:00
Domen Kožar 2b90cd3130
Merge pull request #202 from cachix/feature/kvm
feat: enable KVM on Linux if available
2023-11-23 10:52:28 +01:00
Sander fe19c91c6b
feat: enable KVM on Linux if available 2023-11-22 17:27:22 +00:00
Domen Kožar a56e3a8089
Merge pull request #199 from jalaziz/tempdir
fix: Set TMPDIR to avoid disk space issues
2023-11-04 12:09:00 +00:00
Jameel Al-Aziz 81eb746179
Update install-nix.sh
Co-authored-by: Domen Kožar <domen@enlambda.com>
2023-11-03 12:58:15 -07:00
Sander 97a1be3c09
fix: don't use the default GitHub token for Enterprise
The token on Enterprise instances is not valid for github.com.

Resolves #196.
2023-11-03 13:21:46 +00:00
Jameel Al-Aziz 2cce1fd76b
fix: Set TMPDIR to avoid disk space issues
Set `TMPDIR` if not already set to workaround potential disk space
issues while running builds in a nix shell. See NixOS/nix#395 for
more info.

fixes #197
2023-11-02 18:38:07 -07:00
Domen Kožar 300721fe01
Merge pull request #193 from cachix/dependabot/github_actions/actions/checkout-4
chore(deps): bump actions/checkout from 3 to 4
2023-09-05 09:32:41 +02:00
dependabot[bot] fe6788c5de
chore(deps): bump actions/checkout from 3 to 4
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-05 00:11:47 +00:00
6 changed files with 259 additions and 135 deletions

View file

@ -5,48 +5,68 @@ on:
branches:
- master
env:
nixpkgs_channel: nixpkgs=channel:nixos-24.11
oldest_supported_installer: nix-2.8.0
jobs:
simple-build:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
os:
- ubuntu-latest
- ubuntu-24.04-arm
- macos-latest
- macos-13
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Install Nix
uses: ./
with:
nix_path: nixpkgs=channel:nixos-22.11
nix_path: ${{ env.nixpkgs_channel }}
- 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
custom-nix-path:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
os:
- ubuntu-latest
- ubuntu-24.04-arm
- macos-latest
- macos-13
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Install Nix
uses: ./
with:
nix_path: nixpkgs=channel:nixos-20.03
- run: test $NIX_PATH == "nixpkgs=channel:nixos-20.03"
nix_path: ${{ env.nixpkgs_channel }}
- run: test $NIX_PATH == '${{ env.nixpkgs_channel }}'
- run: nix-build test.nix
extra-nix-config:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
os:
- ubuntu-latest
- ubuntu-24.04-arm
- macos-latest
- macos-13
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Install Nix
uses: ./
with:
nix_path: nixpkgs=channel:nixos-22.11
nix_path: ${{ env.nixpkgs_channel }}
extra_nix_config: |
sandbox = relaxed
- run: cat /etc/nix/nix.conf
@ -54,51 +74,79 @@ jobs:
flakes:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
os:
- ubuntu-latest
- ubuntu-24.04-arm
- macos-latest
- macos-13
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Install Nix
uses: ./
- run: nix flake show github:NixOS/nixpkgs
installer-options:
latest-installer:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
include:
- os: ubuntu-latest
system: x86_64-linux
- os: ubuntu-24.04-arm
system: aarch64-linux
- os: macos-latest
system: aarch64-darwin
- os: macos-13
system: x86_64-darwin
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Run NAR server
run: |
curl --location https://github.com/cachix/nar-toolbox/releases/download/v0.1.0/nar-toolbox-${{ matrix.system }} -O
chmod +x ./nar-toolbox-${{ matrix.system }}
./nar-toolbox-${{ matrix.system }} serve https://cache.nixos.org &
- name: Install Nix
uses: ./
with:
nix_path: nixpkgs=channel:nixos-22.11
install_options: --tarball-url-prefix https://nixos-nix-install-tests.cachix.org/serve
install_url: https://nixos-nix-install-tests.cachix.org/serve/s62m7lc0q0mz2mxxm9q0kkrcg90njzhq/install
nix_path: ${{ env.nixpkgs_channel }}
install_url: https://hydra.nixos.org/job/nix/master/installerScript/latest-finished/download/1/install
install_options: "--tarball-url-prefix http://localhost:8080"
- run: nix-build test.nix
oldest-supported-installer:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-24.04-arm
- macos-latest
- macos-13
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Install Nix
uses: ./
with:
nix_path: nixpkgs=channel:nixos-22.11
install_url: https://releases.nixos.org/nix/nix-2.8.0/install
nix_path: ${{ env.nixpkgs_channel }}
install_url: https://releases.nixos.org/nix/${{ env.oldest_supported_installer }}/install
- run: nix-build test.nix
act-support:
strategy:
matrix:
os: [ubuntu-latest]
matrix:
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- run: curl https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash
- run: docker pull ghcr.io/catthehacker/ubuntu:js-20.04
- run: ./bin/act -P ubuntu-latest=ghcr.io/catthehacker/ubuntu:js-20.04 push -j simple-build
- run: docker pull ghcr.io/catthehacker/ubuntu:js-24.04
- run: |
./bin/act push \
-P ubuntu-latest=ghcr.io/catthehacker/ubuntu:js-24.04 \
-j simple-build \
--matrix os:ubuntu-latest

93
.gitignore vendored
View file

@ -1,93 +1,2 @@
__tests__/runner/*
# comment out in distribution branches
node_modules/
# Rest pulled from https://github.com/github/gitignore/blob/master/Node.gitignore
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
jspm_packages/
# TypeScript v1 declaration files
typings/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
.env.test
# parcel-bundler cache (https://parceljs.org/)
.cache
# next.js build output
.next
# nuxt.js build output
.nuxt
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
.env*

100
README.md
View file

@ -18,7 +18,7 @@ or [pin nixpkgs yourself](https://nix.dev/reference/pinning-nixpkgs)
- Allows specifying extra Nix configuration 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`)
- Enables KVM on supported machines: run VMs and NixOS tests with full hardware-acceleration
## Usage
@ -33,8 +33,8 @@ jobs:
tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v22
- uses: actions/checkout@v4
- uses: cachix/install-nix-action@v31
with:
nix_path: nixpkgs=channel:nixos-unstable
- run: nix-build
@ -51,8 +51,8 @@ jobs:
tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v22
- uses: actions/checkout@v4
- uses: cachix/install-nix-action@v31
with:
github_access_token: ${{ secrets.GITHUB_TOKEN }}
- run: nix build
@ -73,6 +73,35 @@ To install Nix from any commit, go to [the corresponding installer_test action](
- `nix_path`: set `NIX_PATH` environment variable, for example `nixpkgs=channel:nixos-unstable`
- `enable_kvm`: whether to enable KVM for hardware-accelerated virtualization on Linux. Enabled by default if available.
- `set_as_trusted_user`: whether to add the current user to `trusted-users`. Enabled by default.
## Differences from the default Nix installer
Some settings have been optimised for use in CI environments:
- `nix.conf` settings. Override these defaults with `extra_nix_config`:
- The experimental `flakes` and `nix-command` features are enabled. Disable by overriding `experimental-features` in `extra_nix_config`.
- `max-jobs` is set to `auto`.
- `show-trace` is set to `true`.
- `$USER` is added to `trusted-users`.
- `$GITHUB_TOKEN` is added to `access_tokens` if no other `github_access_token` is provided.
- `always-allow-substitutes` is set to `true`.
- `ssl-cert-file` is set to `/etc/ssl/cert.pem` on macOS.
- KVM is enabled on Linux if available. Disable by setting `enable_kvm: false`.
- `$TMPDIR` is set to `$RUNNER_TEMP` if empty.
---
## FAQ
@ -91,11 +120,10 @@ With the following inputs:
```yaml
- uses: cachix/install-nix-action@vXX
with:
enable_kvm: true
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 do I install packages via nix-env from the specified `nix_path`?
```
@ -120,7 +148,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@v22
- uses: cachix/install-nix-action@v31
with:
extra_nix_config: |
trusted-public-keys = hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
@ -146,3 +174,59 @@ Or you can disable pure mode entirely with the `--impure` flag:
```
nix develop --impure
```
### How do I pass AWS credentials to the Nix daemon?
In multi-user mode, Nix commands that operate on the Nix store are forwarded to a privileged daemon. This daemon runs in a separate context from your GitHub Actions workflow and cannot access the workflow's environment variables. Consequently, any secrets or credentials defined in your workflow environment will not be available to Nix operations that require store access.
There are two ways to pass AWS credentials to the Nix daemon:
- Configure a default profile using the AWS CLI
- Install Nix in single-user mode
#### Configure a default profile using the AWS CLI
The Nix daemon supports reading AWS credentials from the `~/.aws/credentials` file.
We can use the AWS CLI to configure a default profile using short-lived credentials fetched using OIDC:
```yaml
job:
build:
runs-on: ubuntu-latest
# Required permissions to request AWS credentials
permissions:
id-token: write
contents: read
steps:
- uses: actions/checkout@v4
- uses: cachix/install-nix-action@v31
- name: Assume AWS Role
uses: aws-actions/configure-aws-credentials@v4.1.0
with:
aws-region: us-east-1
role-to-assume: arn:aws-cn:iam::123456789100:role/my-github-actions-role
- name: Make AWS Credentials accessible to nix-daemon
run: |
sudo -i aws configure set aws_access_key_id "${AWS_ACCESS_KEY_ID}"
sudo -i aws configure set aws_secret_access_key "${AWS_SECRET_ACCESS_KEY}"
sudo -i aws configure set aws_session_token "${AWS_SESSION_TOKEN}"
sudo -i aws configure set region "${AWS_REGION}"
```
#### Install Nix in single-user mode
In some environments it may be possible to install Nix in single-user mode by passing the `--no-daemon` flag to the installer.
This mode is normally used on platforms without an init system, like systemd, and in containerized environments with a single user that can own the entire Nix store.
This approach is more generic as it allows passing environment variables directly to Nix, including secrets, proxy settings, and other configuration options.
However, it may not be suitable for all environments. [Consult the Nix manual](https://nix.dev/manual/nix/latest/installation/nix-security) for the latest restrictions and differences between the two modes.
For example, single-user mode is currently supported on hosted Linux GitHub runners, like `ubuntu-latest`.
It is not supported on macOS runners, like `macos-latest`.
```yaml
- uses: cachix/install-nix-action@v31
with:
install_options: --no-daemon
```

44
RELEASE.md Normal file
View file

@ -0,0 +1,44 @@
# Release
As of v31, releases of this action follow Semantic Versioning.
### Publishing a new release
#### Publish the release
Draft [a new release on GitHub](https://github.com/cachix/install-nix-action/releases):
- In `Choose a tag`, create a new tag, like `v31.2.1`, following semver.
- Click `Generate release notes`.
- `Set as the latest release` should be selected automatically.
- Publish release
#### Update the major tag
The major tag, like `v31`, allows downstream users to opt-in to automatic non-breaking updates.
This process follows GitHub's own guidelines:
https://github.com/actions/toolkit/blob/main/docs/action-versioning.md
##### Fetch the latest tags
```
git pull --tags --force
```
##### Move the tag
```
git tag -fa v31
```
```
git push origin v31 --force
```
#### Update the release notes for the major tag
Find the release on GitHub: https://github.com/cachix/install-nix-action/releases
Edit the release and click `Generate release notes`.
Edit the formatting and publish.

View file

@ -5,13 +5,21 @@ 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.'
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.'
enable_kvm:
description: 'Enable KVM for hardware-accelerated virtualization on Linux, if available.'
required: false
default: true
set_as_trusted_user:
description: 'Add current user to `trusted-users`.'
required: false
default: true
branding:
color: 'blue'
icon: 'sun'
@ -26,4 +34,6 @@ runs:
INPUT_INSTALL_OPTIONS: ${{ inputs.install_options }}
INPUT_INSTALL_URL: ${{ inputs.install_url }}
INPUT_NIX_PATH: ${{ inputs.nix_path }}
INPUT_ENABLE_KVM: ${{ inputs.enable_kvm }}
INPUT_SET_AS_TRUSTED_USER: ${{ inputs.set_as_trusted_user }}
GITHUB_TOKEN: ${{ github.token }}

View file

@ -6,6 +6,17 @@ if nix_path="$(type -p nix)" ; then
exit
fi
if [[ ($OSTYPE =~ linux) && ($INPUT_ENABLE_KVM == 'true') ]]; then
enable_kvm() {
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-install-nix-action-kvm.rules
sudo udevadm control --reload-rules && sudo udevadm trigger --name-match=kvm
}
echo '::group::Enabling KVM support'
enable_kvm && echo 'Enabled KVM' || echo 'KVM is not available'
echo '::endgroup::'
fi
# GitHub command to put the following log messages into a group which is collapsed by default
echo "::group::Installing Nix"
@ -23,13 +34,22 @@ add_config "max-jobs = auto"
if [[ $OSTYPE =~ darwin ]]; then
add_config "ssl-cert-file = /etc/ssl/cert.pem"
fi
# Allow binary caches for user
add_config "trusted-users = root ${USER:-}"
# Add github access token
# Allow binary caches specified at user level
if [[ $INPUT_SET_AS_TRUSTED_USER == 'true' ]]; then
add_config "trusted-users = root ${USER:-}"
fi
# Add a GitHub access token.
# Token-less access is subject to lower rate limits.
if [[ -n "${INPUT_GITHUB_ACCESS_TOKEN:-}" ]]; then
echo "::debug::Using the provided github_access_token for github.com"
add_config "access-tokens = github.com=$INPUT_GITHUB_ACCESS_TOKEN"
elif [[ -n "${GITHUB_TOKEN:-}" ]]; then
# Use the default GitHub token if available.
# Skip this step if running an Enterprise instance. The default token there does not work for github.com.
elif [[ -n "${GITHUB_TOKEN:-}" && $GITHUB_SERVER_URL == "https://github.com" ]]; then
echo "::debug::Using the default GITHUB_TOKEN for github.com"
add_config "access-tokens = github.com=$GITHUB_TOKEN"
else
echo "::debug::Continuing without a GitHub access token"
fi
# Append extra nix configuration if provided
if [[ -n "${INPUT_EXTRA_NIX_CONFIG:-}" ]]; then
@ -38,11 +58,15 @@ fi
if [[ ! $INPUT_EXTRA_NIX_CONFIG =~ "experimental-features" ]]; then
add_config "experimental-features = nix-command flakes"
fi
# Always allow substituting from the cache, even if the derivation has `allowSubstitutes = false`.
# This is a CI optimisation to avoid having to download the inputs for already-cached derivations to rebuild trivial text files.
if [[ ! $INPUT_EXTRA_NIX_CONFIG =~ "always-allow-substitutes" ]]; then
add_config "always-allow-substitutes = true"
fi
# Nix installer flags
installer_options=(
--no-channel-add
--darwin-use-unencrypted-nix-store-volume
--nix-extra-conf-file "$workdir/nix.conf"
)
@ -70,7 +94,7 @@ echo "installer options: ${installer_options[*]}"
# There is --retry-on-errors, but only newer curl versions support that
curl_retries=5
while ! curl -sS -o "$workdir/install" -v --fail -L "${INPUT_INSTALL_URL:-https://releases.nixos.org/nix/nix-2.17.0/install}"
while ! curl -sS -o "$workdir/install" -v --fail -L "${INPUT_INSTALL_URL:-https://releases.nixos.org/nix/nix-2.28.3/install}"
do
sleep 1
((curl_retries--))
@ -91,5 +115,10 @@ if [[ -n "${INPUT_NIX_PATH:-}" ]]; then
echo "NIX_PATH=${INPUT_NIX_PATH}" >> "$GITHUB_ENV"
fi
# Set temporary directory (if not already set) to fix https://github.com/cachix/install-nix-action/issues/197
if [[ -z "${TMPDIR:-}" ]]; then
echo "TMPDIR=${RUNNER_TEMP}" >> "$GITHUB_ENV"
fi
# Close the log message group which was opened above
echo "::endgroup::"