Release 0.12.0: Add deduplication for systems and flakes options
Summary
This release introduces improvements to reduce configuration duplication across CI modules and uses standard nixpkgs systems list.
Changes:
- Use
nixpkgs.lib.systems.flakeExposedfor systems list - Add
systemsmodule for deduplicating build systems configuration - Add automatic flake validation to build modules
- Improve
flakesoption defaults to reduce duplication
New systems module:
- Adds
gitlab-ci.systemsmodule that provides a sharedsystemsoption -
omnixandcachixmodules now default toconfig.systemsif available - Falls back to current system if systems module not imported
Auto-enable flake validation:
-
omnixandcachixnow enable flake validation by default - Only applies if flake module is also imported
- Can be disabled with
flake.enable = false
Smart flakes defaults:
-
omnix.flakesandcachix.flakesdefault toflake.flakesif available - Falls back to
[ "." ]if flake module not enabled - Eliminates duplication when same paths used across modules
Example configuration simplification:
Before:
omnix.systems = [ "x86_64-linux" ];
omnix.flakes = [ "." "./test" ];
flake.flakes = [ "." "./test" ];
After:
systems = [ "x86_64-linux" ];
flake.flakes = [ "." "./test" ];
omnix.enable = true;
Test plan
-
Verify flake evaluation with nix flake show -
Test that omnix and cachix inherit systems and flakes correctly -
Verify backward compatibility with explicit configurations