exo
exo copied to clipboard
ci: build all Nix outputs on all platforms and push to cachix
The CI was only running nix flake check on ubuntu-latest, missing builds for other platforms and not caching packages or devShells.
Added a matrix-based nix-build job that runs on macos-26 (aarch64-darwin), ubuntu-latest (x86_64-linux), and ubuntu-24.04-arm (aarch64-linux). Each job enumerates all packages and devShells via nix flake show --json, builds them in a single nix build call for parallelization, then runs nix flake check. The cachix-action pushes all built outputs automatically.
This ensures all Nix outputs are built and cached for every supported platform, speeding up local development and CI runs.
Test plan:
- Tested jq enumeration command locally, correctly outputs devShell paths
- Verified xargs pipeline works with the enumerated outputs
- CI