29 lines
887 B
Nix
29 lines
887 B
Nix
pkgs: instantiateTests:
|
|
|
|
let
|
|
scenarioNames = let
|
|
inherit (pkgs) lib;
|
|
workflowSrc = builtins.readFile ../../.github/workflows/test.yml;
|
|
matches = builtins.match ".*scenario:(([ \n]+-[ ]+[^ \n]+)+).*" workflowSrc;
|
|
scenariosStr = builtins.head matches;
|
|
particles = builtins.split "[ \n]+-[ ]+" scenariosStr;
|
|
# The first split particle is always an empty str
|
|
particles' = builtins.tail particles;
|
|
in
|
|
builtins.filter lib.isString particles';
|
|
|
|
# `instantiateTests` prints the test name before evaluating, which is useful for debugging
|
|
ciTests = instantiateTests scenarioNames;
|
|
drivers = map (x: x.driver) ciTests;
|
|
driverDrvs = map (x: ''"${x.drvPath}^*"'') drivers;
|
|
in ''
|
|
driverDrvs=(
|
|
${builtins.concatStringsSep "\n" driverDrvs}
|
|
)
|
|
drivers=(
|
|
${builtins.concatStringsSep "\n" drivers}
|
|
)
|
|
scenarioTests=(
|
|
${builtins.concatStringsSep "\n" ciTests}
|
|
)
|
|
''
|