diff options
author | Christopher Baines <mail@cbaines.net> | 2024-01-20 08:08:14 +0000 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2024-01-20 10:49:37 +0000 |
commit | ee1ceaee8eab9c1ac3a98039fa159fdd960e8443 (patch) | |
tree | 712f09c4f479e3caad746b08eec94395eafdf024 | |
parent | d7b2634efa8f953b926eb251cfc26b0225514d87 (diff) | |
download | qa-frontpage-ee1ceaee8eab9c1ac3a98039fa159fdd960e8443.tar qa-frontpage-ee1ceaee8eab9c1ac3a98039fa159fdd960e8443.tar.gz |
Add an information flow diagram
-rw-r--r-- | Makefile.am | 6 | ||||
-rw-r--r-- | README.org | 5 | ||||
-rw-r--r-- | guix-qa-frontpage/server.scm | 27 | ||||
-rw-r--r-- | qa-information-flow.plantuml | 40 |
4 files changed, 72 insertions, 6 deletions
diff --git a/Makefile.am b/Makefile.am index 81b68fc..5976691 100644 --- a/Makefile.am +++ b/Makefile.am @@ -57,9 +57,13 @@ README.html: README.org emacs -q --no-splash -batch -visit README.org \ -eval "(progn (require 'org) (let ((org-export-htmlize-output-type 'css)) (org-html-export-to-html nil nil nil t nil)))" -install-data-local: README.html +qa-information-flow.png: qa-information-flow.plantuml + plantuml -v qa-information-flow.plantuml + +install-data-local: README.html qa-information-flow.png mkdir -p "$(DESTDIR)$(pkgdatadir)" || exit 1; cp -r assets "$(DESTDIR)$(pkgdatadir)/" || exit 1; mkdir -p "$(DESTDIR)$(docdir)"; cp README.org "$(DESTDIR)$(docdir)/README.org" cp README.html "$(DESTDIR)$(docdir)/README.html" + cp qa-information-flow.plantuml qa-information-flow.png "$(DESTDIR)$(docdir)" @@ -29,6 +29,11 @@ After that, you can start the service via: Expect pages to load slowly since the QA frontpage won't have up to date cached data to use. +* Information flow + +#+CAPTION: Diagram describing how information moves between different components +[[./qa-information-flow.png]] + * Ideas ** For branches *** TODO Show broken packages diff --git a/guix-qa-frontpage/server.scm b/guix-qa-frontpage/server.scm index c46f3ef..b175b0e 100644 --- a/guix-qa-frontpage/server.scm +++ b/guix-qa-frontpage/server.scm @@ -92,6 +92,12 @@ (static-asset-from-store-renderer assets-directory) (static-asset-from-directory-renderer assets-directory))) + (define handle-doc-assets + (if (string-prefix? (%store-prefix) + doc-dir) + (static-asset-from-store-renderer doc-dir) + (static-asset-from-directory-renderer doc-dir))) + (define gc-metrics-updater! (get-gc-metrics-updater metrics-registry)) @@ -774,6 +780,14 @@ has no patches or has been closed.") "README not found" "The README.html file does not exist") #:code 404)))) + (('GET (and "qa-information-flow.png" filename)) + (or (handle-doc-assets filename + (request-headers request)) + (list (build-response #:code 404) + (string-append + "Resource not found: " + (uri->string + (request-uri request)))))) ((method path ...) (render-html #:sxml (general-not-found @@ -791,11 +805,14 @@ has no patches or has been closed.") (lambda () (let-values (((request-components mime-types) (request->path-components-and-mime-type request))) - (controller request - (cons (request-method request) - request-components) - mime-types - body))) + (call-with-delay-logging + controller + #:threshold 30 + #:args (list request + (cons (request-method request) + request-components) + mime-types + body)))) #:on-error 'backtrace #:post-error (lambda args (render-html #:sxml (error-page args) diff --git a/qa-information-flow.plantuml b/qa-information-flow.plantuml new file mode 100644 index 0000000..5257b80 --- /dev/null +++ b/qa-information-flow.plantuml @@ -0,0 +1,40 @@ +@startuml + +cloud "Running on beid" { + component Patchwork [ + Patchwork + patches.guix-patches.cbaines.net + ] + component patchesgit [ + Patches Git repository + git.guix-patches.cbaines.net + ] + component dataservice [ + Guix Data Service + data.qa.guix.gnu.org + ] +} + +cloud "Running on bayfront" { + component qafrontpage [ + QA Frontpage + qa.guix.gnu.org + ] + component buildcoordinator [ + Guix Build Coordinator + coordinator.bayfront.guix.gnu.org + ] +} + +[Guix Issue Tracker] + +[guix-patches mailing list] --> [Patchwork] : Patchwork listens via getmail +[Patchwork] --> [qafrontpage] : QA fetches patches and series info +[qafrontpage] --> [patchesgit] : QA creates branches for patch series +[patchesgit] --> [dataservice] : Guix Data Service polls for new branches and processes them +[dataservice] --> [qafrontpage] : QA fetches information about processed revisions +[qafrontpage] --> [buildcoordinator] : QA submits builds for affected packages +[buildcoordinator] --> [dataservice] : Reports build statuses +[qafrontpage] --> [Guix Issue Tracker] : Mumi uses badges from QA + +@enduml |