{ }: let config = import ./default.nix; tf = config.deploy.tf {}; inherit (config) pkgs; nf-actions = config.pkgs.writeShellScriptBin "nf-actions" '' export START_DIR="$PWD" cd ${toString ./.} export NF_CONFIG_ROOT=${toString ./.}/ci NF_CONFIG_FILES=($NF_CONFIG_ROOT/{hosts,niv-cron}.nix) for f in "''${NF_CONFIG_FILES[@]}"; do echo $f nix run --arg config $f ci.run.gh-actions-generate done cd ${toString ./trusted} export TRUSTED_CONFIG_ROOT=${toString ./trusted}/ci TRUSTED_CONFIG_FILES=($TRUSTED_CONFIG_ROOT/hosts.nix) for f in "''${TRUSTED_CONFIG_FILES[@]}"; do echo $f nix run --arg config $f ci.run.gh-actions-generate done cd $START_DIR ''; nf-test = config.pkgs.writeShellScriptBin "nf-test" '' export START_DIR="$PWD" cd ${toString ./.} export NF_CONFIG_ROOT=${toString ./.}/ci NF_CONFIG_FILES=($NF_CONFIG_ROOT/{hosts,niv-cron}.nix) for f in "''${NF_CONFIG_FILES[@]}"; do echo $f nix run --arg config $f ci.test done cd ${toString ./trusted} export TRUSTED_CONFIG_ROOT=${toString ./trusted}/ci TRUSTED_CONFIG_FILES=($TRUSTED_CONFIG_ROOT/hosts.nix) for f in "''${TRUSTED_CONFIG_FILES[@]}"; do echo $f nix run --arg config $f ci.test done cd $START_DIR ''; in pkgs.mkShell { nativeBuildInputs = [ nf-actions nf-test ] ++ config.runners.lazy.nativeBuildInputs; HISTFILE = toString (tf.terraform.baseDir + "/.history"); CI_PLATFORM = "impure"; # use host's nixpkgs for more convenient testing shellHook = '' export HOME_HOSTNAME=$(hostname -s) export NIX_PATH="$NIX_PATH:nixfiles=${toString ./.}" ''; }