nix-gitlab-ci/tests/modules_test.nix
Skryta Istota c8f51c73ed
fix(job) Fixed premature filtering of variables
Fixed excessive deletion of environment variables containing paths to nix store package files,
causing them to not be exported in Giltab's CI environment,
plus removed duplicate tests for moving environment variables.
2025-12-03 17:35:36 +01:00

96 lines
2.7 KiB
Nix

{
pkgs,
cilib,
ntlib,
...
}: {
suites."Modules" = {
pos = __curPos;
tests = let
simplePipeline = cilib.mkCI {
pipelines."test" = {
stages = ["test"];
variables = {
EXAMPLE = "empty";
CURL = toString pkgs.curl;
};
jobs."test" = {
stage = "test";
script = ["echo hello world"];
variables = {
SAMPLE = "working";
HELLO = toString pkgs.hello;
};
};
};
};
in [
{
name = "empty pipelines";
expected = {};
actual =
(cilib.mkCI {}).pipelines;
}
{
name = "empty packages";
expected = {};
actual =
(cilib.mkCI {}).packages;
}
{
name = "simple pipeline final config";
expected = {
stages = [".pre" "test" ".post"];
variables = {
EXAMPLE = "empty";
CURL = toString pkgs.curl;
};
"test" = {
image = "$NIX_CI_IMAGE";
stage = "test";
before_script = ["source setup_nix_ci \"gitlab-ci:pipeline:test:job-deps:test\""];
script = ["echo hello world"];
after_script = ["finalize_nix_ci"];
variables = {
SAMPLE = "working";
#HELLO = toString pkgs.hello;
};
};
};
actual = simplePipeline.pipelines."test".finalConfig;
}
{
name = "simple pipeline json";
type = "script";
script = let
package = simplePipeline.packages."gitlab-ci:pipeline:test";
in
# sh
''
${ntlib.helpers.path [pkgs.gnugrep]}
${ntlib.helpers.scriptHelpers}
assert_file_contains ${package} 'gitlab-ci:pipeline:test:job-deps:test'
assert_file_contains ${package} 'finalize_nix_ci'
assert_file_contains ${package} 'echo hello world'
assert_file_contains ${package} '"EXAMPLE":"empty"'
assert_file_contains ${package} '"SAMPLE":"working"'
assert_file_contains ${package} '"CURL":"/nix/store/.*-curl-.*"'
'';
}
{
name = "simple pipeline deps drv";
type = "script";
script = let
package = simplePipeline.packages."gitlab-ci:pipeline:test:job-deps:test";
in
# sh
''
${ntlib.helpers.path [pkgs.gnugrep]}
${ntlib.helpers.scriptHelpers}
assert_file_contains ${package} ':$PATH'
assert_file_contains ${package} 'HELLO="/nix/store/.*-hello-.*"'
'';
}
];
};
}