Phase 5: scaffold Crucible (sow-tools) — dispatcher + builder shims, container, PR-first CI, fail-closed (D11, D19).
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
{
|
||||
description = "sow-tools / Crucible — NWN build/conversion/sync toolchain (self-contained Go devshell)";
|
||||
|
||||
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
|
||||
outputs = { self, nixpkgs }:
|
||||
let
|
||||
systems = [ "x86_64-linux" "aarch64-linux" ];
|
||||
forAllSystems = f: nixpkgs.lib.genAttrs systems (system: f nixpkgs.legacyPackages.${system});
|
||||
in
|
||||
{
|
||||
# Self-contained (D8): a host with ONLY nix can enter this shell and run
|
||||
# `make check`. ffmpeg is present because the migrated music pipeline needs
|
||||
# it; the scaffold itself is pure stdlib Go.
|
||||
devShells = forAllSystems (pkgs: {
|
||||
default = pkgs.mkShell {
|
||||
name = "sow-tools";
|
||||
packages = with pkgs; [
|
||||
go
|
||||
gopls
|
||||
gotools
|
||||
ffmpeg
|
||||
git
|
||||
gnumake
|
||||
bashInteractive
|
||||
shellcheck
|
||||
yamllint
|
||||
jq
|
||||
];
|
||||
shellHook = ''
|
||||
export GOCACHE="$PWD/.cache/go-build"
|
||||
echo "sow-tools / Crucible devshell (self-contained). $(go version 2>/dev/null)"
|
||||
echo " make check go vet + go test + shellcheck + yamllint"
|
||||
echo " make build build every cmd/* into ./bin"
|
||||
echo " make smoke build + run the binary smoke test"
|
||||
'';
|
||||
};
|
||||
});
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user