feat: add assertion to check if a job's stage exists

This commit is contained in:
technofab 2024-09-10 13:07:48 +00:00
parent e3b35ec8ae
commit 533bd2eef5
2 changed files with 21 additions and 19 deletions

View file

@ -19,7 +19,7 @@ which can be imported in multiple projects.
];
...
perSystem = {...}: {
perSystem = {pkgs, ...}: {
ci = {
stages = ["test"];
jobs = {

View file

@ -54,6 +54,7 @@
};
stage = mkOption {
type = types.str;
default = "test";
};
image = mkOption {
type = types.str;
@ -171,7 +172,8 @@
jobsPatched =
mapAttrs (key: job: {
name = key;
value = builtins.removeAttrs (
value = assert lib.assertMsg (builtins.elem job.stage (rest.stages or [])) "stage '${job.stage}' of job '${key}' does not exist";
builtins.removeAttrs (
(prependToBeforeScript [
"source setup_nix_ci ${key}"
]