colmena/default.nix
Zhaofeng Li dd66ce30e0
Release 0.2.0
This is release 0.2.0, the first stable release of Colmena!

---

Colmena is a simple, stateless NixOS deployment tool modeled
after NixOps and morph. In particular, it is built from the
ground up to support parallelization of the steps in the
deployment process.

This release contains the following features:

- Node Tagging
- Local Deployment
- Secrets
- Ad Hoc Evaluation
- Nix Flakes Support
- Parallelism

We now have a User Manual at <https://zhaofengli.github.io/colmena/0.2>
containing tutorials, sample configurations as well as a
complete listing of supported deployment options.

Signed-off-by: Zhaofeng Li <hello@zhaofeng.li>
2021-11-18 15:41:11 -08:00

46 lines
1.6 KiB
Nix

let
lock = builtins.fromJSON (builtins.readFile ./flake.lock);
lockedPkgs = import (fetchTarball {
url = "https://github.com/NixOS/nixpkgs/archive/${lock.nodes.nixpkgs.locked.rev}.tar.gz";
sha256 = lock.nodes.nixpkgs.locked.narHash;
}) {};
in {
pkgs ? lockedPkgs,
}: let
inherit (pkgs) lib stdenv rustPlatform;
in rustPlatform.buildRustPackage rec {
pname = "colmena";
version = "0.2.0";
# We guarantee CLI and Nix API stability for the same minor version
apiVersion = builtins.concatStringsSep "." (lib.take 2 (lib.splitString "." version));
src = lib.cleanSourceWith {
filter = name: type: !(type == "directory" && builtins.elem (baseNameOf name) [ "target" "manual" ]);
src = lib.cleanSource ./.;
};
cargoSha256 = "sha256-ZNSg3hXWKHNQ9yHJS1qW3tFYwzU4ZDa1N0yvoGLmWns=";
postInstall = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
mkdir completions
for shell in bash fish zsh; do
$out/bin/colmena gen-completions $shell > completions/$shell
done
mkdir -p "$out/share/"{bash-completion/completions,fish/vendor_completions.d,zsh/site-functions}
cp completions/bash $out/share/bash-completion/completions/colmena
cp completions/fish $out/share/fish/vendor_completions.d/colmena.fish
cp completions/zsh $out/share/zsh/site-functions/_colmena
'';
# Recursive Nix is not stable yet
doCheck = false;
meta = with lib; {
description = "A simple, stateless NixOS deployment tool";
homepage = "https://zhaofengli.github.io/colmena/${apiVersion}";
license = licenses.mit;
maintainers = with maintainers; [ zhaofengli ];
};
}