mirror of
https://gitlab.com/TECHNOFAB/nix-gitlab-ci.git
synced 2025-12-12 02:00:13 +01:00
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.
96 lines
2.7 KiB
Nix
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-.*"'
|
|
'';
|
|
}
|
|
];
|
|
};
|
|
}
|