{ 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-.*"' ''; } ]; }; }