about summary refs log tree commit diff
diff options
context:
space:
mode:
authorArun Isaac2025-11-30 01:00:10 +0000
committerArun Isaac2025-11-30 01:46:01 +0000
commit426201609e13d47960a922456cbbddf61cde3330 (patch)
treef6051e70ae141bf14dbe44cafbdb36c61d90a2d9
parentc5bccca30b03f6dfef5d6efaaafc20fa9b25f164 (diff)
downloadravanan-426201609e13d47960a922456cbbddf61cde3330.tar.gz
ravanan-426201609e13d47960a922456cbbddf61cde3330.tar.lz
ravanan-426201609e13d47960a922456cbbddf61cde3330.zip
e2e-tests: Add example Hello World workflow from the documentation.
We want to ensure that the Hello World workflow in our README docs
always works!
-rw-r--r--.guix/e2e-tests.scm23
-rw-r--r--e2e-tests/tests.yaml9
2 files changed, 26 insertions, 6 deletions
diff --git a/.guix/e2e-tests.scm b/.guix/e2e-tests.scm
index cbade68..ef5846a 100644
--- a/.guix/e2e-tests.scm
+++ b/.guix/e2e-tests.scm
@@ -45,7 +45,7 @@
        (modify-inputs (package-native-inputs guix:ccwl)
          (prepend guile-run64))))))
 
-(define (e2e-tools-gexp sources-directory)
+(define (e2e-tools-gexp sources-directory doc-hello-world)
   (with-imported-modules '((guix build utils))
     #~(begin
         (use-modules (rnrs io ports)
@@ -83,20 +83,31 @@
         ;; Copy CWL files.
         (for-each (lambda (cwl-file)
                     (copy-file cwl-file
-                               (string-append #$output (basename cwl-file))))
-                  (find-files #$sources-directory "\\.cwl$")))))
+                               (string-append #$output "/" (basename cwl-file))))
+                  (find-files #$sources-directory "\\.cwl$"))
+        ;; Copy Hello World workflow from documentation.
+        (copy-file #$doc-hello-world
+                   (string-append #$output "/doc-hello-world.cwl")))))
 
 (define e2e-tools
   (computed-file "e2e-tools"
                  (e2e-tools-gexp (local-file "../e2e-tests/tools"
-                                             #:recursive? #t))))
+                                             #:recursive? #t)
+                                 (local-file "../doc/hello-world.cwl"))))
+
+(define e2e-jobs
+  (directory-union "e2e-jobs"
+                   (list (local-file "../e2e-tests/jobs"
+                                     #:recursive? #t)
+                         (file-union "doc-hello-world-inputs"
+                                     `(("doc-hello-world.yaml"
+                                        ,(local-file "../doc/hello-world-inputs.yaml")))))))
 
 (define e2e-test-suite
   (file-union "e2e-test-suite"
               `(("tests.yaml" ,(local-file "../e2e-tests/tests.yaml"))
                 ("tools" ,e2e-tools)
-                ("jobs" ,(local-file "../e2e-tests/jobs"
-                                     #:recursive? #t)))))
+                ("jobs" ,e2e-jobs))))
 
 (define-public e2e-tests
   (program-file "e2e-tests"
diff --git a/e2e-tests/tests.yaml b/e2e-tests/tests.yaml
index 6f561a8..d14b93a 100644
--- a/e2e-tests/tests.yaml
+++ b/e2e-tests/tests.yaml
@@ -7,6 +7,15 @@
       class: File
       size: 13
       checksum: sha1$47a013e660d408619d894b20806b1d5086aab03b
+- id: doc-hello-world
+  doc: Hello world workflow from the documentation
+  tool: tools/doc-hello-world.cwl
+  job: jobs/doc-hello-world.yaml
+  output:
+    message:
+      class: File
+      size: 10
+      checksum: sha1$d4322d1d18549a84abb5e19558784d819785a884
 - id: capture-output-file
   doc: Capture output file using a glob
   tool: tools/capture-output-file.cwl