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:
parent
65a8cd5c87
commit
dd66ce30e0
4 changed files with 74 additions and 7 deletions
62
.github/workflows/manual-stable.nix
vendored
Normal file
62
.github/workflows/manual-stable.nix
vendored
Normal 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
2
Cargo.lock
generated
|
@ -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",
|
||||||
|
|
|
@ -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"
|
||||||
|
|
||||||
|
|
15
default.nix
15
default.nix
|
@ -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 ];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue