mirror of
https://gitlab.com/TECHNOFAB/nix-gitlab-ci.git
synced 2025-12-11 17:50:08 +01:00
fix mkJobPatched removing `cache` and `variables` from non-nix jobs See !15 for more
42 lines
1.1 KiB
Nix
42 lines
1.1 KiB
Nix
{
|
|
lib,
|
|
helpers,
|
|
}: let
|
|
inherit (lib) toList optionalAttrs optional;
|
|
inherit (helpers) prependToBeforeScript appendToAfterScript filterJobVariables;
|
|
in
|
|
{
|
|
key,
|
|
job,
|
|
pipelineName,
|
|
nixConfig,
|
|
}:
|
|
if ! nixConfig.enable
|
|
then job
|
|
else
|
|
(builtins.removeAttrs job ["variables" "cache"])
|
|
// (prependToBeforeScript ["source setup_nix_ci \"gitlab-ci:pipeline:${pipelineName}:job-deps:${key}\""] job)
|
|
// (appendToAfterScript ["finalize_nix_ci"] job)
|
|
// (let
|
|
variables =
|
|
(filterJobVariables false job)
|
|
// optionalAttrs nixConfig.enableRunnerCache {
|
|
NIX_CI_CACHE_STRATEGY = "runner";
|
|
};
|
|
in
|
|
# filter empty variables
|
|
optionalAttrs (variables != {}) {
|
|
inherit variables;
|
|
})
|
|
// (let
|
|
cache =
|
|
(toList (job.cache or []))
|
|
++ (optional nixConfig.enableRunnerCache {
|
|
key = nixConfig.runnerCacheKey;
|
|
paths = [".nix-cache/"];
|
|
});
|
|
in
|
|
# filter empty cache
|
|
optionalAttrs (cache != []) {
|
|
inherit cache;
|
|
})
|