From d6a8fc91ba021a5ca8f2a9aacf42710ebf28a71e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=9C=BF=20corey=20=28they/them=29?= Date: Tue, 10 Mar 2026 13:34:03 -0700 Subject: [PATCH 1/2] feat: add Garnix CI and binary cache Add garnix.yaml to build all system configurations, dev shells, and checks. Configure cache.garnix.io as a substituter so local builds benefit from CI-cached artifacts. Co-Authored-By: Claude Opus 4.6 --- flake.nix | 2 ++ garnix.yaml | 7 +++++++ 2 files changed, 9 insertions(+) create mode 100644 garnix.yaml diff --git a/flake.nix b/flake.nix index 2b49ddb7..58967ef6 100644 --- a/flake.nix +++ b/flake.nix @@ -115,9 +115,11 @@ nixConfig = { experimental-features = ["nix-command" "flakes"]; extra-substituters = [ + "https://cache.garnix.io" "https://stackptr.cachix.org" ]; extra-trusted-public-keys = [ + "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g=" "stackptr.cachix.org-1:5e2q7OxdRdAtvRmHTeogpgJKzQhbvFqNMmCMw71opZA=" ]; }; diff --git a/garnix.yaml b/garnix.yaml new file mode 100644 index 00000000..418fa2b5 --- /dev/null +++ b/garnix.yaml @@ -0,0 +1,7 @@ +builds: + include: + - "nixosConfigurations.*" + - "darwinConfigurations.*" + - "devShells.*.*" + - "checks.*.*" + exclude: [] From 009a7d5ce42da32d0dd4d4eb71591d8fdaac2737 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=9C=BF=20corey=20=28they/them=29?= Date: Tue, 10 Mar 2026 13:37:18 -0700 Subject: [PATCH 2/2] fix: remove unlocked path input for Garnix compatibility Replace the local `path:./flake.systems.nix` input with an inline systems list. Garnix requires all flake inputs to be locked, and path inputs cannot be locked. Co-Authored-By: Claude Opus 4.6 --- flake.lock | 39 ++++++++++++++++++++++++++------------- flake.nix | 12 +++++------- 2 files changed, 31 insertions(+), 20 deletions(-) diff --git a/flake.lock b/flake.lock index 7368de6c..b3ebdcd9 100644 --- a/flake.lock +++ b/flake.lock @@ -11,9 +11,7 @@ "nixpkgs": [ "nixpkgs" ], - "systems": [ - "systems" - ] + "systems": "systems" }, "locked": { "lastModified": 1770165109, @@ -166,9 +164,7 @@ "nixpkgs": [ "nixpkgs" ], - "systems": [ - "systems" - ] + "systems": "systems_2" }, "locked": { "lastModified": 1765523342, @@ -375,21 +371,38 @@ "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs", "nixpkgs-stable": "nixpkgs-stable", - "systems": "systems", "zx-dev": "zx-dev" } }, "systems": { - "flake": false, "locked": { - "path": "./flake.systems.nix", - "type": "path" + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" }, "original": { - "path": "./flake.systems.nix", - "type": "path" + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" }, - "parent": [] + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } }, "zx-dev": { "inputs": { diff --git a/flake.nix b/flake.nix index 58967ef6..21805257 100644 --- a/flake.nix +++ b/flake.nix @@ -4,10 +4,6 @@ nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-25.11"; # General - systems = { - url = "path:./flake.systems.nix"; - flake = false; - }; flake-parts = { url = "github:hercules-ci/flake-parts"; inputs.nixpkgs-lib.follows = "nixpkgs"; @@ -17,7 +13,6 @@ inputs.darwin.follows = "nix-darwin"; inputs.home-manager.follows = "home-manager"; inputs.nixpkgs.follows = "nixpkgs"; - inputs.systems.follows = "systems"; }; home-manager = { url = "github:nix-community/home-manager"; @@ -41,7 +36,6 @@ golink = { url = "github:apoxy-dev/golink/dilyevsky/tsnet-1.90-upgrade"; inputs.nixpkgs.follows = "nixpkgs"; - inputs.systems.follows = "systems"; }; zx-dev = { url = "github:stackptr/zx.dev"; @@ -125,7 +119,11 @@ }; }; - systems = import inputs.systems; + systems = [ + "aarch64-darwin" + "aarch64-linux" + "x86_64-linux" + ]; perSystem = { pkgs, inputs',