Commit Graph

20 Commits

Author SHA1 Message Date
Mathieu Othacehe 43d29317d9
Use a single Cuirass binary. 2021-03-22 18:29:06 +01:00
Mathieu Othacehe aabeced62a
Send notifications in a separate thread. 2021-03-11 10:27:13 +01:00
Mathieu Othacehe a5346d615e
remote: Enable core dump generation.
* src/cuirass/remote-server.scm (remote-server): Enable core dump generation.
2021-02-26 14:47:53 +01:00
Mathieu Othacehe 44df41ca7a
remote: Make sure new messages are created for each send.
* src/cuirass/remote-server.scm (zmq-start-proxy): Make sure new messages are
created for each send.
2021-02-26 12:06:46 +01:00
Mathieu Othacehe fa191d877e
remote: Use message API.
* src/cuirass/remote-server.scm (zmq-start-proxy): Use the message API.
2021-02-26 11:39:48 +01:00
Mathieu Othacehe e1c21224ae
remote: Use an EINTR safe message receive procedure.
* src/cuirass/remote.scm (zmq-message-receive*): New procedure.
* src/cuirass/remote-server.scm (start-fetch-worker, zmq-start-proxy): Use it.
2021-02-26 09:43:08 +01:00
Mathieu Othacehe 5f77c39f32
remote: Use copies of message contents.
* src/cuirass/remote-server.scm (zmq-start-proxy): Use copies of message
contents.
2021-02-26 09:39:22 +01:00
Mathieu Othacehe d4acc6f566
remote: Print a warning if the poll loop is blocked.
* src/cuirass/remote-server.scm (zmq-start-proxy): Print a warning if the poll
loop is blocked for more than 5 seconds.
2021-02-26 09:35:35 +01:00
Mathieu Othacehe d2e64f6a3d
remote: Use ZMQ message API.
* src/cuirass/remote-server.scm (start-fetch-worker): Use the message API.
2021-02-26 09:32:56 +01:00
Mathieu Othacehe 76191f55c1
remote: Add log message.
* src/cuirass/remote-server.scm (run-fetch): Add log message.
2021-02-23 17:39:27 +01:00
Mathieu Othacehe 543e26addc
Move mu-debug to parameters module.
* src/cuirass/mail.scm (mu-debug): Remove it.
* src/cuirass/utils.scm (mu-debug): Ditto.
* src/cuirass/parameters.scm (mu-debug): New variable.
* src/cuirass/remote-server.scm (start-fetch-worker): Force parameters module
load.
* tests/database.scm: Load parameters module.
2021-02-22 14:14:15 +01:00
Mathieu Othacehe f0e0c3454f
Add parameters support.
* src/cuirass/parameters.scm: New file.
* Makefile.am (dist_pkgmodule_DATA): Add it.
* bin/cuirass.in: Add "parameters" argument.
* src/cuirass/base.scm (read-parameters): New procedure.
* src/cuirass/notification.scm (build-details-url): New procedure.
(notification-text): Use it.
* src/cuirass/rss.scm (build-details-url): New procedure.
(build->rss-item): Use it.
(rss-feed): Remove "base-url" argument.
* src/cuirass/remote-server.scm: Add "parameters" argument.
* src/cuirass/zabbix.scm (%zabbix-uri, %zabbix-uri, %zabbix-password): Remove
them.
(zabbix-request, zabbix-login): Adapt accordingly.
2021-02-22 09:05:27 +01:00
Mathieu Othacehe 4495e08542
Add notifications support.
* src/cuirass/mail.scm: New file.
* src/cuirass/notification.scm: New file.
* src/sql/upgrade-5.sql: New file.
* Makefile.am (dist_pkgmodule_DATA, dist_sql_DATA): Add them.
* src/schema.sql (Specifications)[notifications]: New field.
* bin/cuirass.in: Wrap inside the "with-notification" macro.
* src/cuirass/remote-server.scm (remote-server): Ditto.
* src/cuirass/database.scm (db-add-specification): Add notifications field.
(db-get-specifications): Ditto.
(db-update-build-status!): Send notifications.
* tests/mail.sh: New file.
* tests/database.scm (mu-debug, tmp-mail): New variables.
(mailer): New procedure.
(example-spec): Add an email notification.
("mail-notification"): New test case.
2021-02-21 09:55:41 +01:00
Mathieu Othacehe 860fffa260
remote: Set the locale only in the publish thread.
* src/cuirass/remote-server.scm (remote-server): Move the locale setup to the
publish thread.
* src/cuirass/remote-worker.scm (remote-worker): Ditto.
* src/cuirass/remote.scm (publish-server): Set the locale.
2021-02-17 17:19:27 +01:00
Mathieu Othacehe ea01201ccd
remote: Use a default locale.
* src/cuirass/remote-server.scm (remote-server): Use a default locale.
* src/cuirass/remote-worker.scm (remote-worker): Ditto.
2021-02-17 14:23:05 +01:00
Mathieu Othacehe 83f33cdbb4
remote: Remove address argument. 2021-02-12 14:39:12 +01:00
Mathieu Othacehe 38701970eb
remote: Discover server log-port and publish-port without Avahi.
* src/cuirass/remote.scm (zmq-server-info, zmq-worker-request-info-message):
New procedures.
* src/cuirass/remote-server.scm (%log-port, %publish-port): New parameters.
(read-worker-exp): Handle 'worker-request-info message.
(remote-server): Set the new parameters.
* src/cuirass/remote-worker.scm (start-worker): Rename "server" argument. Send
a 'worker-request-info message to discover the server log port and publish
port.
(remote-worker): Adapt it.
2021-02-10 17:37:37 +01:00
Mathieu Othacehe e9e0943945
Remove workers hash table.
* src/cuirass/database.scm (db-add-worker): Rename ...
(db-add-or-update-worker): ... into this new procedure.
(db-get-worker, db-remove-unresponsive-workers): New procedures.
* src/cuirass/remote-server.scm (%workers): Remove it.
(pop-build): Adapt it.
(remove-unresponsive-workers!): Remove it.
(read-worker-exp): Adapt it.
(zmq-start-proxy): Ditto.
* tests/database.scm ("db-add-worker"): Rename ...
("db-add-or-update-worker"): ... into this new test.
("db-get-worker", "db-remove-unresponsive-workers"): New tests.
2021-01-31 10:31:01 +01:00
Mathieu Othacehe 68532aee90
Fix logging.
* src/cuirass/remote-server.scm (remote-server): Have stdout/stderr
line-buffered.
* src/cuirass/remote-worker.scm (remote-worker): Ditto.
* src/cuirass/remote.scm (publish-server): Discard publish logs.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-01-28 16:16:43 +01:00
Mathieu Othacehe ca7a7ca989
Add remote build support.
* src/cuirass/remote.scm: New file.
* src/cuirass/remote-server.scm: New file.
* src/cuirass/remote-worker.scm: New file.
* bin/remote-server.in: New file.
* bin/remote-worker.in: New file.
* Makefile.am (bin_SCRIPTS): Add new binaries,
(dist_pkgmodule_DATA): add new files,
(EXTRA_DIST): add new binaries,
(bin/remote-server, bin/remote-worker): new targets.
* .gitignore: Add new binaries.
* bin/cuirass.in (%options): Add "--build-remote" option,
(show-help): document it,
(main): honor it.
* src/cuirass/base.scm (with-build-offload-thread): New macro,
(%build-remote?, %build-offload-channel): new parameters,
(make-build-offload-thread): new procedure,
(build-derivations/offload): new procedure,
(restart-builds): use it to offload builds when %build-remote? is set,
(build-packages): ditto.
2021-01-06 21:06:04 +01:00