determinate-nix-action/tools/README.template.md
Graham Christensen fbd616d075 Initial commit
2025-05-14 17:20:48 -04:00

2.6 KiB

Determinate Nix Action

Determinate is the best way to use Nix on macOS, WSL, and Linux. It is an end-to-end toolchain for using Nix, from installation to collaboration to deployment.

Based on the Determinate Nix Installer and its corresponding Nix Installer Action, responsible for over tens of thousands of Nix installs daily.

Supports

  • Accelerated KVM on open source projects and larger runners. See GitHub's announcement for more info.
  • Linux, x86_64, aarch64, and i686
  • macOS, x86_64 and aarch64
  • WSL2, x86_64 and aarch64
  • Containers, ARC, and Act
  • GitHub Enterprise Server
  • GitHub Hosted, self-hosted, and long running Actions Runners

Usage

on:
  pull_request:
  push:
    branches: [main]

jobs:
  lints:
    name: Build
    runs-on: ubuntu-latest
    permissions:
      id-token: "write"
      contents: "read"
    steps:
      - uses: actions/checkout@<!-- checkout_action_tag -->
      - uses: DeterminateSystems/determinate-nix-action@main # or <!-- version --> to pin to a release
      - run: nix build .

Pinning

This action is tagged automatically for every Determinate Nix release. Pinning to DeterminateSystems/determinate-nix-action@<!-- version --> will always resolve to the same DeterminateSystems/nix-installer-action revision and will always install Determinate Nix .

This is different from DeterminateSystems/nix-installer-action, which does not support explicit pinning.

If your action does not pin to a specific tag and uses DeterminateSystems/determinate-nix-action@main your workflows will follow the latest Determinate Nix release, and occasionally participate in phased Determinate Nix releases.

Important

Make sure to setup Dependabot to stay up to date with Determinate Nix releases.

Setting up Dependabot

Automatically keep your GitHub actions up to date with Dependabot. Create a file in your repository at .github/dependabot.yml with the following contents:

version: 2
updates:
  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: "weekly"

Configuration

Need help?

Support contracts and shared slack rooms are available.