guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[no subject]


From: Ludovic Courtès
Date: Tue, 30 Jan 2018 18:02:45 -0500 (EST)

branch: master
commit eb9521d1b4ce7fd03651fd51688acadcae2d1a33
Author: Ludovic Courtès <address@hidden>
Date:   Mon Jan 29 22:15:51 2018 +0100

    examples: Add 'random-jobs'.
    
    * examples/random-jobs.scm, examples/random.scm: New files.
    * Makefile.am (nobase_dist_pkgdata_DATA): Add them.
---
 Makefile.am              | 10 ++++++----
 examples/random-jobs.scm | 49 ++++++++++++++++++++++++++++++++++++++++++++++++
 examples/random.scm      | 29 ++++++++++++++++++++++++++++
 3 files changed, 84 insertions(+), 4 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index ab7a3bc..af571b3 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -187,10 +187,12 @@ info_TEXINFOS = doc/cuirass.texi
 doc_cuirass_TEXINFOS = doc/fdl-1.3.texi
 
 # Install the examples.
-nobase_dist_pkgdata_DATA = \
-  examples/gnu-system.scm \
-  examples/guix-jobs.scm \
-  examples/hello-singleton.scm \
+nobase_dist_pkgdata_DATA =                     \
+  examples/random.scm                          \
+  examples/random-jobs.scm                     \
+  examples/gnu-system.scm                      \
+  examples/guix-jobs.scm                       \
+  examples/hello-singleton.scm                 \
   examples/hello-subset.scm
 
 ## -------------- ##
diff --git a/examples/random-jobs.scm b/examples/random-jobs.scm
new file mode 100644
index 0000000..22cfa1b
--- /dev/null
+++ b/examples/random-jobs.scm
@@ -0,0 +1,49 @@
+;;; random.scm -- Definition of the random build jobs
+;;; Copyright © 2018 Ludovic Courtès <address@hidden>
+;;;
+;;; This file is part of Cuirass.
+;;;
+;;; Cuirass is free software: you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation, either version 3 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; Cuirass is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with Cuirass.  If not, see <http://www.gnu.org/licenses/>.
+
+
+(use-modules (guix)
+             (srfi srfi-1)
+             (srfi srfi-26))
+
+(define (make-job name derivation)
+  (lambda ()
+    `((#:job-name ,name)
+      (#:derivation . ,(derivation-file-name (force derivation)))
+      (#:license . ((name . "GPLv3+")))
+      (#:description "dummy job")
+      (#:long-description "really dummy job"))))
+
+(define (random-derivation store)
+  (let ((nonce (random 1e6)))
+    (run-with-store store
+      (gexp->derivation "random"
+                        #~(let ((seed (logxor (getpid)
+                                              (car (gettimeofday)))))
+                            (seed->random-state seed)
+                            (sleep (pk 'sleeping (random 10)))
+                            #$nonce
+                            (mkdir #$output))))))
+
+(define (make-random-jobs store arguments)
+  (unfold (cut > <> 10)
+          (lambda (i)
+            (make-job (string-append "foo" (number->string i))
+                      (delay (random-derivation store))))
+          1+
+          0))
diff --git a/examples/random.scm b/examples/random.scm
new file mode 100644
index 0000000..820ac8d
--- /dev/null
+++ b/examples/random.scm
@@ -0,0 +1,29 @@
+;;; random.scm -- Job specification that creates random build jobs
+;;; Copyright © 2018 Ludovic Courtès <address@hidden>
+;;;
+;;; This file is part of Cuirass.
+;;;
+;;; Cuirass is free software: you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation, either version 3 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; Cuirass is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with Cuirass.  If not, see <http://www.gnu.org/licenses/>.
+
+(let ((top-srcdir (canonicalize-path
+                   (string-append (dirname (current-filename)) "/.."))))
+  (list
+   `((#:name . "random")
+     (#:url . ,(string-append "file://" top-srcdir))
+     (#:branch . "master")
+     (#:no-compile? . #t)
+     (#:load-path . ".")
+     (#:proc . make-random-jobs)
+     (#:file . "examples/random-jobs.scm")
+     (#:arguments . ()))))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]