Installing the hci command

The hci command can be installed in many ways.

If you use nixos-21.05 or nixos-unstable, the recommended method is via Nixpkgs, pkgs.hci.

If you want to use the latest version, the recommended method is by flake.

A binary cache is available to speed up non-Nixpkgs installation methods.

$ cachix use hercules-ci

Install into shell via Nixpkgs

Available since version 21.05.

Update your project’s shell.nix file to include pkgs.hci in nativeBuildInputs. For example:

pkgs.mkShell {
  nativeBuildInputs = [
    pkgs.hci
  ];
}

Install latest into flake

Add hercules-ci-agent to your inputs and add the defaultApp to your devShell. For example:

{
  inputs = {
    # ...
    hercules-ci-agent.url = "github:hercules-ci/hercules-ci-agent/master";
  };

  outputs =
    # ...
    {
      # ...
      devShells.default = pkgs.mkShell {
        nativeBuildInputs = [
          # ...
          hercules-ci-agent.defaultApp.${system}
        ];
      };
    }
}

Install latest into shell.nix

let
  pkgs = #...

  # Update hash or pin differently
  hercules-ci-agentSrc = builtins.fetchTarball "https://github.com/hercules-ci/hercules-ci-agent/archive/f0974a6897663dace4f7e28457fdfeef19b7fbde.tar.gz";

  hci = (import hercules-ci-agentSrc).defaultApp.${pkgs.system};
in
pkgs.mkShell {
  nativeBuildInputs = [
    hci
  ];
}

Install latest into a system configuration

This configuration module works for NixOS and nix-darwin:

{ pkgs, ... }:
let
  # Update hash or pin differently
  hercules-ci-agentSrc = builtins.fetchTarball "https://github.com/hercules-ci/hercules-ci-agent/archive/f0974a6897663dace4f7e28457fdfeef19b7fbde.tar.gz";

  hci = (import hercules-ci-agentSrc).defaultApp.${pkgs.system};
in
{
  environment.systemPackages = [
    hci
  ];
}

Install latest into user profile

$ nix-env -iA hercules-ci-cli -f https://github.com/hercules-ci/hercules-ci-agent/archive/master.tar.gz