import ./make-test-python.nix ( { pkgs, ... }: let bash = pkgs.dockerTools.pullImage { imageName = "quay.io/nextflow/bash"; imageDigest = "sha256:bea0e244b7c5367b2b0de687e7d28f692013aa18970941c7dd184450125163ac"; sha256 = "161s9f24njjx87qrwq0c9nmnwvyc6iblcxka7hirw78lm7i9x4w5"; finalImageName = "quay.io/nextflow/bash"; }; hello = pkgs.stdenv.mkDerivation { name = "nextflow-hello"; src = pkgs.fetchFromGitHub { owner = "nextflow-io"; repo = "hello"; rev = "afff16a9b45c8e8a4f5a3743780ac13a541762f8"; hash = "sha256-c8FirHc+J5Y439g0BdHxRtXVrOAzIrGEKA0m1mp9b/U="; }; installPhase = '' cp -r $src $out ''; }; run-nextflow-pipeline = pkgs.writeShellApplication { name = "run-nextflow-pipeline"; runtimeInputs = [ pkgs.nextflow ]; text = '' export NXF_OFFLINE=true for b in false true; do echo "docker.enabled = $b" > nextflow.config cat nextflow.config nextflow run -ansi-log false ${hello} done ''; }; in { name = "nextflow"; nodes.machine = { ... }: { environment.systemPackages = [ run-nextflow-pipeline pkgs.nextflow ]; virtualisation = { docker.enable = true; }; }; testScript = { nodes, ... }: '' start_all() machine.wait_for_unit("docker.service") machine.succeed("docker load < ${bash}") machine.succeed("run-nextflow-pipeline >&2") ''; } )