Compare commits

...

12 commits

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
5 changed files with 109 additions and 100 deletions

View file

@ -21,7 +21,7 @@ jobs:
- macos-13
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Install Nix
uses: ./
with:
@ -43,7 +43,7 @@ jobs:
- macos-13
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Install Nix
uses: ./
with:
@ -62,7 +62,7 @@ jobs:
- macos-13
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Install Nix
uses: ./
with:
@ -83,7 +83,7 @@ jobs:
- macos-13
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Install Nix
uses: ./
- run: nix flake show github:NixOS/nixpkgs
@ -103,7 +103,7 @@ jobs:
system: x86_64-darwin
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- 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
@ -128,7 +128,7 @@ jobs:
- macos-13
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Install Nix
uses: ./
with:
@ -142,7 +142,7 @@ jobs:
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- 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-24.04
- run: |

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*

View file

@ -174,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

@ -94,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.26.3/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--))