# CI harness runtime (M4): a reproducible Python env with pytest + Playwright and the # Nix-provided browsers, exposed as `cc-ci-run` on the host so the Drone exec pipeline (and # manual dev) can run the harness with `cc-ci-run runner/run_recipe_ci.py`. Playwright on NixOS # needs the browsers from nixpkgs (not a downloaded copy) via PLAYWRIGHT_BROWSERS_PATH. { pkgs, ... }: let pyEnv = pkgs.python3.withPackages (ps: with ps; [ pytest playwright ]); ccciRun = pkgs.writeShellApplication { name = "cc-ci-run"; runtimeInputs = [ pyEnv pkgs.abra pkgs.docker pkgs.git pkgs.coreutils pkgs.util-linux ]; text = '' export PLAYWRIGHT_BROWSERS_PATH=${pkgs.playwright-driver.browsers} export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 exec ${pyEnv}/bin/python3 "$@" ''; }; in { environment.systemPackages = [ ccciRun ]; }