name: Magic Nix Cache
branding:
  icon: "box"
  color: "purple"
description: "Free, no-configuration Nix cache. Cut CI time by 50% or more by caching to GitHub Actions' cache."
inputs:
  use-gha-cache:
    description: "Whether to upload build results to the GitHub Actions cache."
    default: true
    required: false
  listen:
    description: The host and port to listen on.
    default: 127.0.0.1:37515
  upstream-cache:
    description: Your preferred upstream cache. Store paths in this store will not be cached in GitHub Actions' cache.
    default: https://cache.nixos.org
  diagnostic-endpoint:
    description: "Diagnostic endpoint url where diagnostics and performance data is sent. To disable set this to an empty string."
    default: "-"
  use-flakehub:
    description: "Whether to upload build results to FlakeHub Cache."
    default: true
    required: false
  flakehub-cache-server:
    description: "The FlakeHub binary cache server."
    default: "https://cache.flakehub.com"
  flakehub-api-server:
    description: "The FlakeHub API server."
    default: "https://api.flakehub.com"
  flakehub-flake-name:
    description: "The name of your flake on FlakeHub. The empty string will autodetect your FlakeHub flake."
    default: ""
    required: false
  startup-notification-port:
    description: "The port magic-nix-cache uses for daemon startup notification."
    default: 41239
  diff-store:
    description: "Whether or not to diff the store before and after Magic Nix Cache runs"
    default: false
    required: false

  source-binary:
    description: Run a version of the cache binary from somewhere already on disk. Conflicts with all other `source-*` options.
    required: false
  source-branch:
    description: The branch of `magic-nix-cache` to use. Conflicts with all other `source-*` options.
    required: false
  source-pr:
    description: The PR of `magic-nix-cache` to use. Conflicts with all other `source-*` options.
    required: false
  source-revision:
    description: The revision of `nix-magic-nix-cache` to use. Conflicts with all other `source-*` options.
    required: false
  source-tag:
    description: The tag of `magic-nix-cache` to use. Conflicts with all other `source-*` options.
    required: false
  source-url:
    description: A URL pointing to a `magic-nix-cache` binary. Overrides all other `source-*` options.
    required: false
  _internal-strict-mode:
    description: Whether to fail when any errors are thrown. Used only to test the Action; do not set this in your own workflows.
    required: false
    default: false

runs:
  using: "node20"
  main: "./dist/index.js"
  post: "./dist/index.js"