From 3423a03688e4a03c7f83849c113aa6b6c58ed945 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 28 Jun 2020 12:41:03 +0100 Subject: Add a hook for when builds are submitted --- guix-build-coordinator/datastore/sqlite.scm | 7 +++++++ guix-build-coordinator/hooks.scm | 8 +++++++- scripts/guix-build-coordinator.in | 9 ++++++++- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/guix-build-coordinator/datastore/sqlite.scm b/guix-build-coordinator/datastore/sqlite.scm index a5c50e4..4251f75 100644 --- a/guix-build-coordinator/datastore/sqlite.scm +++ b/guix-build-coordinator/datastore/sqlite.scm @@ -455,10 +455,17 @@ INSERT INTO build_tags (build_id, tag_id) VALUES (:build_id, :tag_id)" (sqlite-step build-tags-statement))) tags))) + (define (handle-inserting-unprocessed-hook-event db build-id) + (insert-unprocessed-hook-event + db + "build-submitted" + (list build-id))) + (datastore-call-with-transaction datastore (lambda (db) (insert-build db uuid derivation-name priority) + (handle-inserting-unprocessed-hook-event db uuid) (unless (null? tags) (insert-tags db uuid tags)))) #t) diff --git a/guix-build-coordinator/hooks.scm b/guix-build-coordinator/hooks.scm index 9868d37..0491df6 100644 --- a/guix-build-coordinator/hooks.scm +++ b/guix-build-coordinator/hooks.scm @@ -29,13 +29,19 @@ #:use-module (guix-build-coordinator utils) #:use-module (guix-build-coordinator datastore) #:use-module (guix-build-coordinator coordinator) - #:export (default-build-success-hook + #:export (default-build-submitted-hook + default-build-success-hook build-success-publish-hook build-success-s3-publish-hook default-build-failure-hook build-failure-retry-hook default-build-missing-inputs-hook)) +(define (default-build-submitted-hook build-coordinator build-id) + (display + (simple-format #f "build ~A submtited\n" build-id) + (current-error-port))) + (define (default-build-success-hook build-coordinator build-id) (define datastore (build-coordinator-datastore build-coordinator)) diff --git a/scripts/guix-build-coordinator.in b/scripts/guix-build-coordinator.in index 01752bd..8163280 100644 --- a/scripts/guix-build-coordinator.in +++ b/scripts/guix-build-coordinator.in @@ -152,6 +152,11 @@ arg) (exit 1))) result))) + (option '("build-submitted-hook") #t #f + (lambda (opt name arg result) + (alist-cons 'build-submitted-hook + (read/eval arg) + (alist-delete 'build-submitted-hook result)))) (option '("build-success-hook") #t #f (lambda (opt name arg result) (alist-cons 'build-success-hook @@ -173,6 +178,7 @@ `((agent-communication . "http://0.0.0.0:8745") (client-communication . "http://127.0.0.1:8746") (allocation-strategy . ,basic-build-allocation-strategy) + (build-submitted-hook . ,default-build-submitted-hook) (build-success-hook . ,default-build-success-hook) (build-failure-hook . ,default-build-failure-hook) (build-missing-inputs-hook . ,default-build-missing-inputs-hook))) @@ -427,7 +433,8 @@ processed?: ~A (assq-ref opts 'database) #:metrics-registry metrics-registry)) (hooks - `((build-success . ,(assq-ref opts 'build-success-hook)) + `((build-submitted . ,(assq-ref opts 'build-submitted-hook)) + (build-success . ,(assq-ref opts 'build-success-hook)) (build-failure . ,(assq-ref opts 'build-failure-hook)) (build-missing-inputs . ,(assq-ref opts 'build-missing-inputs-hook)))) (build-coordinator (make-build-coordinator -- cgit v1.2.3