Fix: Enable flake validation by default even when imports are used
Problem
Flake validation was not enabled by default when users used gitlab.ci.imports to add custom modules. The default modules = [flake] was being overridden by imported modules that set config.modules.
Example that didn't show flake validation jobs:
gitlab.ci = {
enable = true;
imports = [ inputs.gitlab-ci.modules.gitlab-ci.canaries ];
canaries.enable = true;
}
Root Cause
When gitlab-ci modules (like canaries, omnix, etc.) set config.modules = [{stages = ...; jobs = ...}], this overrode the default modules = [flake] because the module's definition had higher priority than the default.
Solution
Add the flake module to the base submoduleWith.modules list instead of as a default on the modules option. Modules in the base list are ALWAYS part of the submodule evaluation, regardless of what users add via imports or the modules option.
This matches how flake-parts handles always-included modules.
Changes
- Add flake module to
submoduleWith.modulesbase list in gitlab-ci.nix:79-82 - Remove redundant default from modules option (now empty list)
- Update modules option description to clarify automatic inclusion
- Add test:
it-enables-flake-validation-by-defaultto verify the fix
Testing
This fulfills the 0.18.0 ChangeLog promise: "Flake validation is now enabled by default when `gitlab.ci.enable = true`"