Skip to content

Test

Test #448

Workflow file for this run

name: "Test"
on:
workflow_call:
inputs:
install_url:
description: "Nix installation URL, e.g. https://releases.nixos.org/nix/nix-2.33.3/install"
required: false
type: string
workflow_dispatch:
inputs:
install_url:
description: "Nix installation URL, e.g. https://releases.nixos.org/nix/nix-2.33.3/install"
required: false
type: string
env:
ACTIONS_STEP_DEBUG: true
jobs:
public-cache:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
useDaemon: [true, false]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v5
- uses: cachix/install-nix-action@v31
with:
install_url: ${{ inputs.install_url }}
- name: Test public cache
uses: ./
with:
name: cachix-action
signingKey: "${{ secrets.CACHIX_SIGNING_KEY }}"
useDaemon: ${{ matrix.useDaemon }}
- run: nix-build test.nix
public-cache-no-signing-key:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
useDaemon: [true, false]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v5
- uses: cachix/install-nix-action@v31
with:
install_url: ${{ inputs.install_url }}
- name: Test public cache no signing key
uses: ./
with:
name: cachix-action
useDaemon: ${{ matrix.useDaemon }}
- run: nix-build test.nix
private-cache:
# Only run when secrets are available
if: ${{ github.secret_source == 'Actions' }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
useDaemon: [true, false]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v5
- uses: cachix/install-nix-action@v31
with:
install_url: ${{ inputs.install_url }}
- name: Test private cache
uses: ./
with:
name: cachix-action-private
signingKey: "${{ secrets.CACHIX_SIGNING_KEY_PRIVATE }}"
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
useDaemon: ${{ matrix.useDaemon }}
- run: nix-build test.nix
push-paths:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v5
- uses: cachix/install-nix-action@v31
with:
install_url: ${{ inputs.install_url }}
- id: paths
run: |
paths=$(nix-instantiate test.nix | tr '\n' ' ')
echo "OUT_PATHS=$paths" >> $GITHUB_OUTPUT
- name: Test pushPaths
uses: ./
with:
name: cachix-action
signingKey: "${{ secrets.CACHIX_SIGNING_KEY }}"
pathsToPush: "${{ steps.paths.outputs.OUT_PATHS }}"
installCommand:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v5
- uses: cachix/install-nix-action@v31
with:
install_url: ${{ inputs.install_url }}
- name: Test private cache
uses: ./
with:
name: cachix-action
signingKey: "${{ secrets.CACHIX_SIGNING_KEY }}"
installCommand: "nix-env -j8 -f https://cachix.org/api/v1/install -iA cachix"
- run: nix-build test.nix
nix-master:
strategy:
matrix:
include:
- os: ubuntu-latest
system: x86_64-linux
- os: macos-15-intel
system: x86_64-darwin
- os: macos-latest
system: aarch64-darwin
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v5
- 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 &
- uses: cachix/install-nix-action@v31
with:
install_url: ${{ inputs.install_url || 'https://hydra.nixos.org/job/nix/master/installerScript/latest-finished/download/1/install' }}
install_options: "--tarball-url-prefix http://localhost:8080"
- name: Test public cache
uses: ./
with:
name: cachix-action
signingKey: "${{ secrets.CACHIX_SIGNING_KEY }}"
- run: nix-build test.nix