diff --git a/ci.nix b/ci.nix index 2a6d0d1..77fa121 100644 --- a/ci.nix +++ b/ci.nix @@ -1,10 +1,17 @@ { lib, pkgs }: +let + # vulnix's bundled nix-2.34 broke its own --experimental-features detection + nixConf = pkgs.writeText "ci-nix.conf" "experimental-features = nix-command flakes"; +in # tools must track ci.py's subprocess calls; nix stays ambient (uses the # runner's own nix, not a pinned one). pkgs.writers.writePython3Bin "ci" { flakeIgnore = [ "E501" ]; libraries = [ pkgs.python3Packages.subprocess-tee ]; makeWrapperArgs = [ + "--set-default" + "NIX_USER_CONF_FILES" + (toString nixConf) "--prefix" "PATH" ":" diff --git a/ci.py b/ci.py index 7c47483..86eafef 100644 --- a/ci.py +++ b/ci.py @@ -18,7 +18,8 @@ def run(*args, **kw): def nix(*args): - return subprocess_tee.run(("nix", "--extra-experimental-features", "nix-command flakes", "-L", *args), check=True, text=True).stdout + # tee to stderr - stdout leaks into GITHUB_OUTPUT $() captures + return subprocess_tee.run(("nix", "--extra-experimental-features", "nix-command flakes", "-L", *args), check=True, text=True, stdout=sys.stderr).stdout def git(*args, check=True): @@ -254,7 +255,7 @@ def format_vulnix(vulns): def vulnix(args): paths = list(build_hosts(args.ref).values()) - result = run("vulnix", "-j", "-C", *paths, capture_output=True) + result = run("vulnix", "-j", *paths, capture_output=True) if result.returncode not in (0, 2): print(result.stderr, file=sys.stderr) sys.exit(result.returncode)