Compare commits

...

96 commits
v19 ... 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
Domen Kožar 6a9a9e84a1
Merge pull request #192 from grahamc/patch-1
Update to Nix 2.17.0
2023-09-04 10:53:24 +02:00
Graham Christensen 4509d84f10
Update to Nix 2.17.0 2023-09-03 15:45:45 -04:00
Domen Kožar 5cfd5166ea
bump 2023-07-08 10:09:56 +01:00
Sander e02ea8c42e
Fix links to nix.dev 2023-07-07 23:05:53 +00:00
Domen Kožar fffc90f426 always show trace 2023-07-06 11:03:24 +01:00
Domen Kožar 6ed004b9cc
Merge pull request #184 from cachix/macos-bump
MacOS-12 fix & Nix 2.16.1
2023-06-16 20:04:07 +01:00
Domen Kožar e27879448e Nix: 2.15.1 -> 2.16.1 2023-06-16 19:57:30 +01:00
Domen Kožar 8ab3881720 use system certs 2023-06-16 19:57:30 +01:00
Domen Kožar 16b951426e
Merge pull request #182 from l0b0/feat/configure-editors
feat: Configure editors
2023-06-08 12:02:43 +01:00
Victor Engmark 2c203fd87b feat: Configure editors
Based on the content of files already in the repo.
2023-06-07 08:15:55 +12:00
Domen Kožar 4b933aa7eb Nix: 2.15.1 2023-05-24 13:31:13 +01:00
Domen Kožar 35806937f1
Merge pull request #179 from joergdw/fix-action-path
Fix action to make it work on custom containers;
2023-05-05 17:27:03 +01:00
Domen Kožar 3eb7a24508
Merge pull request #178 from cachix/docs/149
Document how to pass env vars to modern nix commands
2023-05-04 10:15:12 +01:00
sandydoo 840ed7ce9a
Document how to pass env vars to modern nix commands
Resolves #149.
2023-05-04 08:41:47 +00:00
Jörg Weisbarth b2f4229533 Fix action to make it work on custom containers;
For further information, see: <https://github.com/actions/runner/issues/716#issuecomment-795238933>
2023-05-03 17:02:20 +02:00
Domen Kožar e304541747 fix #170 2023-05-01 13:29:04 +01:00
Domen Kožar 3988b729f9 pin Nix to 2.15.0 2023-05-01 13:27:11 +01:00
sandydoo 763a380571
Bump revision in README 2023-04-28 00:43:31 +00:00
Domen Kožar 67e9fd765d
bump revision in readme 2023-04-17 11:06:51 +01:00
Domen Kožar be4cef7b77
Merge pull request #166 from l0b0/refactor/linting
refactor: Linting
2023-03-09 14:40:10 +04:00
Victor Engmark 3bdded02da refactor: Use consistent emptiness check 2023-03-09 10:30:16 +13:00
Victor Engmark ac5ee67104 refactor: Simplify appending to file
Avoids one extra command, and removes the need for `tee`.
2023-03-09 10:27:14 +13:00
Victor Engmark ef4bcbc79c refactor: De-dupe Nix path detection 2023-03-09 10:24:48 +13:00
Victor Engmark e322e039f3 fix: Quote variable reference
As recommended by ShellCheck.
2023-03-09 10:23:20 +13:00
Domen Kožar 29bd9290ef
Merge pull request #163 from cachix/fix-nix-2.14
Support new Nix 2.14 profile PATH
2023-03-01 13:52:04 +08:00
Domen Kožar 167742cb88 don't insist $USER needs to be set 2023-03-01 05:51:32 +00:00
Domen Kožar 3755e30bd2 Support new Nix 2.14 profile PATH 2023-03-01 05:44:36 +00:00
Domen Kožar 193b0d85f5
Merge pull request #159 from cachix/update-readme
Update README for v19
2023-02-08 19:35:22 +07:00
sandydoo cb6121cc54
Update README for v19 2023-02-06 15:00:46 +00:00
7 changed files with 302 additions and 166 deletions

15
.editorconfig Normal file
View file

@ -0,0 +1,15 @@
# EditorConfig is awesome: https://EditorConfig.org
# top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file
[*]
charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = space
insert_final_newline = true
[LICENSE]
indent_size = unset

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-20.03
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-20.03
nix_path: ${{ env.nixpkgs_channel }}
extra_nix_config: |
sandbox = relaxed
- run: cat /etc/nix/nix.conf
@ -54,42 +74,66 @@ 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.05
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:
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.05
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:
@ -98,7 +142,11 @@ jobs:
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*

128
README.md
View file

@ -6,8 +6,8 @@ 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 [picking a channel](https://status.nixos.org/)
or [pin nixpkgs yourself](https://nix.dev/reference/pinning-nixpkgs.html)
(see also [pinning tutorial](https://nix.dev/tutorials/towards-reproducibility-pinning-nixpkgs.html)).
or [pin nixpkgs yourself](https://nix.dev/reference/pinning-nixpkgs)
(see also [pinning tutorial](https://nix.dev/tutorials/towards-reproducibility-pinning-nixpkgs)).
# Features
@ -18,7 +18,7 @@ or [pin nixpkgs yourself](https://nix.dev/reference/pinning-nixpkgs.html)
- 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@v18
- 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@v18
- 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
@ -84,19 +113,18 @@ To install Nix from any commit, go to [the corresponding installer_test action](
run: nix-instantiate --eval -E '(import <nixpkgs> {}).lib.version'
```
### How can I run NixOS tests?
### How do I run NixOS tests?
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 can I install packages via nix-env from the specified `nix_path`?
### How do I install packages via nix-env from the specified `nix_path`?
```
nix-env -i mypackage -f '<nixpkgs>'
@ -120,29 +148,85 @@ 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@v18
- 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=
substituters = https://hydra.iohk.io https://cache.nixos.org/
```
## Hacking
### How do I pass environment variables to commands run with `nix develop` or `nix shell`?
Install the dependencies
Nix runs commands in a restricted environment by default, called `pure mode`.
In pure mode, environment variables are not passed through to improve the reproducibility of the shell.
```bash
$ yarn install
You can use the `--keep / -k` flag to keep certain environment variables:
```yaml
- name: Run a command with nix develop
run: nix develop --ignore-environment --keep MY_ENV_VAR --command echo $MY_ENV_VAR
env:
MY_ENV_VAR: "hello world"
```
Build the typescript
Or you can disable pure mode entirely with the `--impure` flag:
```bash
$ yarn build
```
nix develop --impure
```
Run the tests :heavy_check_mark:
### How do I pass AWS credentials to the Nix daemon?
```bash
$ yarn test
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,20 +5,28 @@ 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'
runs:
using: 'composite'
steps:
- run : ${{ github.action_path }}/install-nix.sh
- run : ${GITHUB_ACTION_PATH}/install-nix.sh
shell: bash
env:
INPUT_EXTRA_NIX_CONFIG: ${{ inputs.extra_nix_config }}
@ -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

@ -1,11 +1,22 @@
#!/usr/bin/env bash
set -euo pipefail
if type -p nix &>/dev/null ; then
echo "Aborting: Nix is already installed at $(type -p nix)"
if nix_path="$(type -p nix)" ; then
echo "Aborting: Nix is already installed at ${nix_path}"
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"
@ -15,30 +26,47 @@ trap 'rm -rf "$workdir"' EXIT
# Configure Nix
add_config() {
echo "$1" | tee -a "$workdir/nix.conf" >/dev/null
echo "$1" >> "$workdir/nix.conf"
}
add_config "show-trace = true"
# Set jobs to number of cores
add_config "max-jobs = auto"
# Allow binary caches for user
add_config "trusted-users = root $USER"
# Add github access token
if [[ $OSTYPE =~ darwin ]]; then
add_config "ssl-cert-file = /etc/ssl/cert.pem"
fi
# 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 [[ $INPUT_EXTRA_NIX_CONFIG != "" ]]; then
if [[ -n "${INPUT_EXTRA_NIX_CONFIG:-}" ]]; then
add_config "$INPUT_EXTRA_NIX_CONFIG"
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"
)
@ -54,10 +82,10 @@ else
add_config "build-users-group ="
sudo mkdir -p /etc/nix
sudo chmod 0755 /etc/nix
sudo cp $workdir/nix.conf /etc/nix/nix.conf
sudo cp "$workdir/nix.conf" /etc/nix/nix.conf
fi
if [[ $INPUT_INSTALL_OPTIONS != "" ]]; then
if [[ -n "${INPUT_INSTALL_OPTIONS:-}" ]]; then
IFS=' ' read -r -a extra_installer_options <<< "$INPUT_INSTALL_OPTIONS"
installer_options=("${extra_installer_options[@]}" "${installer_options[@]}")
fi
@ -66,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://nixos.org/nix/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--))
@ -78,21 +106,19 @@ done
sh "$workdir/install" "${installer_options[@]}"
if [[ $OSTYPE =~ darwin ]]; then
# macOS needs certificates hints
cert_file=/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt
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 "/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 [[ -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::"