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>
This commit is contained in:
Zhaofeng Li 2021-11-18 15:41:02 -08:00
parent 65a8cd5c87
commit dd66ce30e0
No known key found for this signature in database
GPG key ID: A1381DD3E2F6599A
4 changed files with 74 additions and 7 deletions

62
.github/workflows/manual-stable.nix vendored Normal file
View file

@ -0,0 +1,62 @@
name: Manual (Stable)
on:
push:
branches:
- release-0.2.x
jobs:
deploy:
env:
LATEST_STABLE_API: 0.2
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.5
- uses: cachix/install-nix-action@v15
with:
install_url: https://releases.nixos.org/nix/nix-2.4/install
extra_nix_config: |
experimental-features = nix-command flakes
- uses: cachix/cachix-action@v10
with:
name: colmena
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- name: Check API version
run: echo "api_version=$(nix eval .#colmena.apiVersion)" >> $GITHUB_ENV
# == Manual
- name: Build manual
run: nix build -o out .#manual -L
# Ugly hack so it has permission to delete the worktree afterwards
- name: Copy manual
run: cp --no-preserve=mode -r out/ public/
- name: Deploy manual
uses: JamesIves/github-pages-deploy-action@4.1.5
with:
branch: gh-pages
folder: public
target-folder: '${{ env.api_version }}'
# == Redirect Farm for Latest Stable
# /stable -> /api_version
- name: Build redirect farm
run: nix build -o out .#manual.redirectFarm -L
if: ${{ env.api_version == env.LATEST_STABLE_API }}
# Ugly hack so it has permission to delete the worktree afterwards
- name: Copy redirect farm
run: cp --no-preserve=mode -r out-redirectFarm/ redirect-farm/
if: ${{ success() }}
- name: Deploy redirect farm
uses: JamesIves/github-pages-deploy-action@4.1.5
with:
branch: gh-pages
folder: redirect-farm
target-folder: stable
if: ${{ success() }}

2
Cargo.lock generated
View file

@ -120,7 +120,7 @@ dependencies = [
[[package]] [[package]]
name = "colmena" name = "colmena"
version = "0.2.0-pre" version = "0.2.0"
dependencies = [ dependencies = [
"ansi-to-html", "ansi-to-html",
"async-trait", "async-trait",

View file

@ -1,6 +1,6 @@
[package] [package]
name = "colmena" name = "colmena"
version = "0.2.0-pre" version = "0.2.0"
authors = ["Zhaofeng Li <hello@zhaofeng.li>"] authors = ["Zhaofeng Li <hello@zhaofeng.li>"]
edition = "2018" edition = "2018"

View file

@ -7,12 +7,10 @@ let
in { in {
pkgs ? lockedPkgs, pkgs ? lockedPkgs,
}: let }: let
lib = pkgs.lib; inherit (pkgs) lib stdenv rustPlatform;
stdenv = pkgs.stdenv;
rustPlatform = pkgs.rustPlatform;
in rustPlatform.buildRustPackage rec { in rustPlatform.buildRustPackage rec {
pname = "colmena"; pname = "colmena";
version = "0.2.0-pre"; version = "0.2.0";
# We guarantee CLI and Nix API stability for the same minor version # We guarantee CLI and Nix API stability for the same minor version
apiVersion = builtins.concatStringsSep "." (lib.take 2 (lib.splitString "." version)); apiVersion = builtins.concatStringsSep "." (lib.take 2 (lib.splitString "." version));
@ -22,7 +20,7 @@ in rustPlatform.buildRustPackage rec {
src = lib.cleanSource ./.; src = lib.cleanSource ./.;
}; };
cargoSha256 = "sha256-IiAJ+sQasimcn4nSv4ACBwP1NLGNArtcIbwzkx0v/7w="; cargoSha256 = "sha256-ZNSg3hXWKHNQ9yHJS1qW3tFYwzU4ZDa1N0yvoGLmWns=";
postInstall = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) '' postInstall = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
mkdir completions mkdir completions
@ -38,4 +36,11 @@ in rustPlatform.buildRustPackage rec {
# Recursive Nix is not stable yet # Recursive Nix is not stable yet
doCheck = false; 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 ];
};
} }