notes: 2.3.0 -> 2.3.1 (#352950)
[NixPkgs.git] / nixos / tests / nextflow.nix
blobb4aad98483b93c18c239b85f883a502e9a7d0975
1 import ./make-test-python.nix (
2   { pkgs, ... }:
3   let
4     bash = pkgs.dockerTools.pullImage {
5       imageName = "quay.io/nextflow/bash";
6       imageDigest = "sha256:bea0e244b7c5367b2b0de687e7d28f692013aa18970941c7dd184450125163ac";
7       sha256 = "161s9f24njjx87qrwq0c9nmnwvyc6iblcxka7hirw78lm7i9x4w5";
8       finalImageName = "quay.io/nextflow/bash";
9     };
11     hello = pkgs.stdenv.mkDerivation {
12       name = "nextflow-hello";
13       src = pkgs.fetchFromGitHub {
14         owner = "nextflow-io";
15         repo = "hello";
16         rev = "afff16a9b45c8e8a4f5a3743780ac13a541762f8";
17         hash = "sha256-c8FirHc+J5Y439g0BdHxRtXVrOAzIrGEKA0m1mp9b/U=";
18       };
19       installPhase = ''
20         cp -r $src $out
21       '';
22     };
23     run-nextflow-pipeline = pkgs.writeShellApplication {
24       name = "run-nextflow-pipeline";
25       runtimeInputs = [ pkgs.nextflow ];
26       text = ''
27         export NXF_OFFLINE=true
28         for b in false true; do
29           echo "docker.enabled = $b" > nextflow.config
30           cat nextflow.config
31           nextflow run -ansi-log false ${hello}
32         done
33       '';
34     };
35   in
36   {
37     name = "nextflow";
39     nodes.machine =
40       { ... }:
41       {
42         environment.systemPackages = [
43           run-nextflow-pipeline
44           pkgs.nextflow
45         ];
46         virtualisation = {
47           docker.enable = true;
48         };
49       };
51     testScript =
52       { nodes, ... }:
53       ''
54         start_all()
55         machine.wait_for_unit("docker.service")
56         machine.succeed("docker load < ${bash}")
57         machine.succeed("run-nextflow-pipeline >&2")
58       '';
59   }