diff options
| author | lassulus <lassulus@lassul.us> | 2017-12-31 13:30:17 +0100 | 
|---|---|---|
| committer | lassulus <lassulus@lassul.us> | 2017-12-31 13:30:17 +0100 | 
| commit | c4a8cc56ef8e900ffa934d965f15d77e23aedc43 (patch) | |
| tree | ecf7f9ec0778f10f4d8a022efa1ba52bd16485f1 /krebs/3modules | |
| parent | 9ee5c02e755799e50f265e31c1694190cc2e703a (diff) | |
ci: add tests option
Diffstat (limited to 'krebs/3modules')
| -rw-r--r-- | krebs/3modules/ci.nix | 48 | 
1 files changed, 43 insertions, 5 deletions
diff --git a/krebs/3modules/ci.nix b/krebs/3modules/ci.nix index b56f5c543..bb19f0602 100644 --- a/krebs/3modules/ci.nix +++ b/krebs/3modules/ci.nix @@ -24,6 +24,13 @@ in          List of hosts that should be build        '';      }; +    tests = mkOption { +      type = types.listOf types.str; +      default = []; +      description = '' +        List of tests that should be build +      ''; +    };    };    config = mkIf cfg.enable { @@ -56,14 +63,14 @@ in        '';        scheduler = {          build-scheduler = '' -          # build all hosts            sched.append(                  schedulers.SingleBranchScheduler(                      change_filter=util.ChangeFilter(branch_re=".*"),                      treeStableTimer=${toString cfg.treeStableTimer}*60,                      name="build-all-branches",                      builderNames=[ -                        "build-hosts" +                        ${optionalString (cfg.hosts != []) ''"hosts",''} +                        ${optionalString (cfg.tests != []) ''"tests",''}                      ]                  )            ) @@ -73,7 +80,8 @@ in                schedulers.ForceScheduler(                      name="force",                      builderNames=[ -                        "build-hosts" +                        ${optionalString (cfg.hosts != []) ''"hosts",''} +                        ${optionalString (cfg.tests != []) ''"tests",''}                      ]                )            ) @@ -91,7 +99,7 @@ in            factory.addStep(steps.ShellCommand(**kwargs))        '';        builder = { -        build-hosts = '' +        hosts = mkIf (cfg.hosts != []) ''            f = util.BuildFactory()            f.addStep(grab_repo) @@ -120,12 +128,42 @@ in            bu.append(                util.BuilderConfig( -                  name="build-hosts", +                  name="hosts",                    slavenames=slavenames,                    factory=f                )            ) +        ''; +        tests = mkIf (cfg.tests != []) '' +          f = util.BuildFactory() +          f.addStep(grab_repo) +          def run_test(test): +              addShell(f, +                  name="{}".format(test), +                  env={ +                    "NIX_PATH": "secrets=/var/src/stockholm/null:/var/src", +                    "NIX_REMOTE": "daemon", +                    "dummy_secrets": "true", +                  }, +                  command=[ +                    "nix-build", "-I", "stockholm=.", "krebs/6tests", +                    "-A", "{}".format(test) +                  ], +                  timeout=90001 +              ) + +          ${concatMapStringsSep "\n" (test: +             "run_test(\"${test}\")" +          ) cfg.tests} + +          bu.append( +              util.BuilderConfig( +                  name="tests", +                  slavenames=slavenames, +                  factory=f +              ) +          )          '';        };        enable = true;  | 
