fix: pipelines can have either trigger or script

They canno thave both, so here I add assertions support and use them to avoid this case.
This commit is contained in:
Jairo Llopis 2026-05-13 08:53:15 +01:00
parent 097f775cff
commit 70dc878112
No known key found for this signature in database
GPG key ID: B24A1D10508180D8
8 changed files with 107 additions and 19 deletions

View file

@ -2,9 +2,10 @@
lib,
soonixSubmodule,
pipelineSubmodule,
pkgs,
...
}: let
inherit (lib) mkOption types foldr;
inherit (lib) mkOption types foldr mapAttrsToList concatLists;
in rec {
configSubmodule = {
options = {
@ -28,6 +29,7 @@ in rec {
};
nixCiSubmodule = {config, ...}: {
imports = [(pkgs.path + /nixos/modules/misc/assertions.nix)];
options = {
config = mkOption {
description = ''
@ -65,6 +67,10 @@ in rec {
};
};
config = {
# Propagate pipeline assertions to the root level
assertions = concatLists (
mapAttrsToList (_name: pipeline: pipeline.assertions) config.pipelines
);
packages = foldr (pipeline: acc: acc // pipeline) {} (
map (pipeline: pipeline.packages) (builtins.attrValues config.pipelines)
);